/*
 * Copyright (c) 2021 HiSilicon (Shanghai) Technologies CO., LIMITED.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

#ifndef __OS08A10_CMOS_EX_H_
#define __OS08A10_CMOS_EX_H_

#include "hi_awb_comm.h"

#ifdef __cplusplus
#if __cplusplus
extern "C" {
#endif
#endif

static const ISP_CMOS_LCAC_S g_stIspLCac = {
    1, /* bEnable */
    0, /* enOpMode */
    0, /* VarThr */
    {1500, 1500, 0}, /* au16RLumaThd */
    {1500, 1500, 0}, /* au16GLumaThd */
    {4095, 1500, 0}, /* au16BLumaThd */
    {3200, 1500, 0}, /* au16YLumaThd */
    {-50, -50, -50}, /* as16CbCrRatio */
    30, /* u16PurpleDetRange */
    {
        0, /* u8DePurpleCrStr */
        3  /* u8DePurpleCbStr */
    },
    {
        { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* u8DePurpleCrStr */
        { 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 }  /* u8DePurpleCbStr */
    }
};

static const ISP_CMOS_LCAC_S g_stIspLCacWdr = {

    1, /* bEnable */
    0, /* enOpMode */
    130, /* VarThr */
    {1500, 1500, 0}, /* au16RLumaThd */
    {1500, 1500, 0}, /* au16GLumaThd */
    {4095, 1500, 0}, /* au16BLumaThd */
    {3200, 1500, 0}, /* au16YLumaThd */
    {-50, -50, -50}, /* as16CbCrRatio */
    30, /* u16PurpleDetRange */
    {
        0, /* u8DePurpleCrStr */
        3  /* u8DePurpleCbStr */
    },
    {
        { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* u8DePurpleCrStr */
        { 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 }  /* u8DePurpleCbStr */
    }
};

/* Piris attr */
static ISP_PIRIS_ATTR_S g_stPirisAttr = {
    0,  /* bStepFNOTableChange */
    1,  /* bZeroIsMax */
    94, /* u16TotalStep */
    62, /* u16StepCount */
    {
        30,  35,  40,  45,  50,  56,  61,  67,  73,  79,  85,  92,  98,  105, 112, 120, 127, 135, 143, 150, 158,
        166, 174, 183, 191, 200, 208, 217, 225, 234, 243, 252, 261, 270, 279, 289, 298, 307, 316, 325, 335, 344,
        353, 362, 372, 381, 390, 399, 408, 417, 426, 435, 444, 453, 462, 470, 478, 486, 493, 500, 506, 512
    },
    ISP_IRIS_F_NO_1_4, /* enMaxIrisFNOTarget */
    ISP_IRIS_F_NO_5_6,  /* enMinIrisFNOTarget */
    0,
    0,
    0
};

static const ISP_CMOS_DPC_S g_stCmosDpc = {
    { 0, 0, 0, 152, 220, 220, 220, 220, 220, 220, 152, 152, 152, 152, 152, 152 }, /* au16Strength[16] */
    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, 50, 50, 50, 50, 50 },                     /* au16BlendRatio[16] */
};

#ifdef CONFIG_HI_ISP_CR_SUPPORT
static const ISP_CMOS_GE_S g_stIspGe = {
    /* For GE */
    1,   /* bEnable */
    9,   /* u8Slope */
    9,   /* u8SensiSlope */
    300, /* u16SensiThr */
    { 300, 300, 300, 300, 310, 310, 310, 310, 320, 320, 320, 320, 330, 330, 330, 330 },
    { 128, 128, 128, 128, 129, 129, 129, 129, 130, 130, 130, 130, 131, 131, 131, 131 },
    { 1024, 1024, 1024, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048 }
};

static const ISP_CMOS_GE_S g_stIspWdrGe = {
    /* For GE */
    0,   /* bEnable */
    9,   /* u8Slope */
    9,   /* u8SensiSlope */
    300, /* u16SensiThr */
    { 300, 300, 300, 300, 310, 310, 310, 310, 320, 320, 320, 320, 330, 330, 330, 330 },
    { 128, 128, 128, 128, 129, 129, 129, 129, 130, 130, 130, 130, 131, 131, 131, 131 },
    { 1024, 1024, 1024, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048 }
};
#endif

static const ISP_CMOS_DEMOSAIC_S g_stIspDemosaic = {
    1, /* bEnable */
    /* au8NonDirStr */
    { 64, 64, 64, 64, 64, 64, 64, 48, 48, 48, 48, 48, 48, 48, 48, 48 },
    /* au8NonDirLFDetailEhc */
    { 90, 90, 80, 64, 60, 58, 54, 54, 50, 40, 56, 56, 16, 16, 16, 16 },
    /* au8NonDirHFDetailEhc */
    { 0, 0, 2, 3, 4, 5, 5, 5, 5, 5, 5, 7, 7, 7, 7, 7 },
    /* au8DetailSmoothRange */
    { 1, 1, 1, 1, 1, 1, 3, 4, 5, 5, 7, 7, 7, 7, 7, 7 },
};

static const ISP_CMOS_DEMOSAIC_S g_stIspDemosaicWdr = {
    1, /* bEnable */
    /* au8NonDirStr */
    { 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64 },
    /* au8NonDirLFDetailEhc */
    { 86, 75, 70, 60, 55, 50, 40, 30, 22, 16, 16, 16, 16, 16, 16, 16 },
    /* au8NonDirHFDetailEhc */
    { 0, 1, 2, 2, 2, 3, 3, 3, 3, 4, 4, 5, 5, 5, 5, 5 },
    /* au8DetailSmoothRange */
    { 3, 3, 3, 4, 4, 4, 4, 4, 5, 5, 7, 7, 7, 7, 7, 7 },
};

static const ISP_CMOS_ANTIFALSECOLOR_S g_stIspAntiFalseColor = {
    1,                                                    /* bEnable */
    { 10, 10, 8, 8, 7, 7, 7, 6, 6, 6, 5, 4, 3, 2, 1, 0 }, /* au8AntiFalseColorThreshold */
    { 8, 8, 8, 8, 7, 7, 7, 6, 6, 6, 5, 4, 3, 2, 1, 0 },   /* au8AntiFalseColorStrength */
};

static const ISP_CMOS_ANTIFALSECOLOR_S g_stIspWdrAntiFalseColor = {
    1,                                                  /* bEnable */
    { 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 2, 1, 0 }, /* au8AntiFalseColorThreshold */
    { 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 2, 1, 0 }, /* au8AntiFalseColorStrength */
};

/* BAYER NR */
static ISP_CMOS_NOISE_CALIBRATION_S g_stIspNoiseCalibratio = {
    10, /* Calibration Lut Num */
    {
        { 100.000000f, 0.045372f, 0.0000f },
        { 200.000000f, 0.076860f, 0.0000f },
        { 400.000000f, 0.136002f, 0.0000f },
        { 800.000000f, 0.255852f, 0.0000f },
        { 1600.000000f, 0.500004f, 0.0000f },
        { 3200.000000f, 0.973072f, 0.0000f },
        { 6400.000000f, 1.967438f, 0.0000f },
        { 12800.000000f, 3.939074f, 0.0000f },
        { 25600.000000f, 8.230627f, 16.0000f },
        { 51200.000000f, 17.523088f, 16.0000f }
    },
};

static const ISP_CMOS_BAYERNR_S g_stIspBayerNr = {
    1,                                                                  /* bEnable */
    0,                                                                  /* bBnrMonoSensorEn */
    0,                                                                  /* bNrLscEnable */
    96,                                                                 /* u8BnrLscMaxGain */
    256,                                                                /* u16BnrLscCmpStrength */
    { 85, 85, 85, 90, 88, 84, 80, 78, 68, 46, 16, 16, 16, 16, 16, 16 }, /* FineStr */
    {
        { 0, 0, 0, 1, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3 }, /* ChromaStrR */
        { 0, 0, 0, 0, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2 }, /* ChromaStrGr */
        { 0, 0, 0, 0, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2 }, /* ChromaStrGb */
        { 0, 0, 0, 1, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3 }  /* ChromaStrB */
    },
    { 0, 0, 0, 0 }, /* WDRFrameStr */
    { 0, 0, 0, 0 }, /* FusionFrameStr */
    {
        { 120, 140, 180, 200, 240, 280, 300, 320, 340, 380, 340, 340, 300, 300, 280, 280 }, /* CoarseStrR */
        { 108, 110, 115, 125, 135, 160, 180, 180, 180, 180, 160, 160, 148, 148, 138, 138 }, /* CoarseStrGR */
        { 108, 110, 115, 125, 135, 160, 180, 180, 180, 180, 160, 160, 148, 148, 138, 138 }, /* CoarseStrGB */
        { 120, 140, 180, 200, 240, 280, 300, 300, 340, 380, 340, 340, 300, 300, 280, 280 }  /* CoarseStrB */
    },
    { 15, 18, 20, 25, 25, 25, 25, 25, 30, 30, 40, 40, 40, 40, 40, 40 }, /* lutCoringWeight */
    {
        140, 160, 140, 120, 90, 65, 65, 65, 70, 70, 70,  70,  70,  70,  70,  70, /* CoringRatio */
        80,  80,  80,  85,  85, 85, 90, 90, 90, 95, 100, 120, 120, 150, 150, 180, 180
    },
};

static const ISP_CMOS_BAYERNR_S g_stIspBayerNrWdr2To1 = {
    1,                                                                  /* bEnable */
    0,                                                                  /* bBnrMonoSensorEn */
    0,                                                                  /* bNrLscEnable */
    96,                                                                 /* u8BnrLscMaxGain */
    256,                                                                /* u16BnrLscCmpStrength */
    { 70, 85, 90, 80, 80, 70, 60, 40, 30, 30, 16, 16, 16, 16, 16, 16 }, /* FineStr */
    {
        { 0, 0, 0, 1, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3 }, /* ChromaStrR */
        { 0, 0, 0, 0, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2 }, /* ChromaStrGr */
        { 0, 0, 0, 0, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2 }, /* ChromaStrGb */
        { 0, 0, 0, 1, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3 }  /* ChromaStrB */
    },
    { 10, 12, 40, 0 }, /* WDRFrameStr */
    { 26, 16, 0, 0 },  /* FusionCoarseStr */
    {
        { 120, 140, 180, 200, 240, 280, 300, 320, 340, 380, 340, 340, 300, 300, 280, 280 }, /* CoarseStrR */
        { 108, 108, 112, 114, 125, 140, 150, 160, 170, 180, 160, 160, 148, 148, 138, 138 }, /* CoarseStrGR */
        { 108, 108, 112, 114, 125, 140, 150, 160, 170, 180, 160, 160, 148, 148, 138, 138 }, /* CoarseStrGB */
        { 120, 140, 180, 200, 240, 280, 300, 300, 340, 380, 340, 340, 300, 300, 280, 280 }  /* CoarseStrB */
    },
    { 25, 25, 25, 25, 25, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30 }, /* lutCoringWeight */
    {
        10,  20,  40,  80,  100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, /* coring ratio */
        100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100
    },
};

static const ISP_CMOS_DETAIL_S g_stIspDetail = {
    {
        1, /* bEnable */
        { 256, 256, 200, 170, 150, 100, 60, 60, 60, 80, 80, 80, 80, 50, 50, 100, 100 },
        0, /* enOpType */
        {
            { 100, 150, 160, 160, 160, 180, 170, 160, 120, 100, 100, 100, 100, 100, 100, 100 }, /* u16GlobalGain */
            { 6, 9, 10, 12, 12, 16, 20, 13, 10, 8, 8, 8, 8, 8, 8, 8 },                          /* u16GainLF */
            { 4, 6, 8, 9, 9, 12, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15 },                      /* u16GainHF */
        },
        {
            150, /* u16GlobalGain */
            9,   /* u16GainLF */
            9    /* u16GainHFPos */
        }
    }
};

static const ISP_CMOS_DETAIL_S g_stIspDetailWdr2To1 = {
    {
        1, /* bEnable */
        { 256, 256, 200, 170, 150, 100, 60, 60, 60, 80, 80, 80, 80, 50, 50, 100, 100 },
        0, /* enOpType */
        {
            { 150, 150, 150, 150, 170, 190, 190, 150, 150, 150, 150, 150, 150, 150, 150, 150 }, /* u16GlobalGain */
            { 9, 9, 9, 9, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 },                                 /* u16GainLF */
            { 9, 9, 9, 9, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12 },                     /* u16GainHF */
        },
        {
            150, /* u16GlobalGain */
            9,   /* u16GainLF */
            9    /* u16GainHFPos */
        }
    }
};

static const ISP_CMOS_LDCI_S g_stIspLdci = {
    /* bEnable */
    1,
    /* u8GaussLPFSigma */
    36,

    /* au8HePosWgt */
    { 70, 45, 42, 40, 35, 32, 12, 8, 6, 0, 0, 0, 0, 0, 0, 0 },
    /* au8HePosSigma */
    { 80, 80, 70, 70, 70, 64, 24, 20, 12, 8, 6, 2, 1, 1, 1, 1 },
    /* au8HePosMean */
    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },

    /* au8HeNegWgt */
    { 60, 45, 45, 45, 45, 24, 12, 8, 6, 0, 0, 0, 0, 0, 0, 0 },
    /* au8HeNegSigma */
    { 80, 80, 80, 80, 80, 72, 64, 54, 36, 8, 6, 2, 1, 1, 1, 1 },
    /* au8HeNegMean */
    { 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },

    /* au16BlcCtrl */
    { 20, 20, 20, 20, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30 }
};

static const ISP_CMOS_LDCI_S g_stIspWdrLdci = {
    /* bEnable */
    1,
    /* u8GaussLPFSigma */
    36,
    /* au8HePosWgt */
    { 16, 16, 16, 12, 8, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    /* au8HePosSigma */
    { 80, 80, 80, 80, 72, 64, 40, 20, 12, 8, 6, 2, 1, 1, 1, 1 },
    /* au8HePosMean */
    { 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20 },

    /* au8HeNegWgt */
    { 32, 32, 32, 24, 16, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    /* au8HeNegSigma */
    { 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80 },
    /* au8HeNegMean */
    { 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180 },
    /* au16BlcCtrl */
    { 20, 20, 20, 20, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30 }
};

static const ISP_CMOS_GAMMA_S g_stIspGamma = {
    {
        0,    47,   62,   78,   93,   108,  123,  139,  154,  169,  185,  200,  216,  231,  247,  262,  277,  293,  308,
        324,  339,  355,  370,  386,  401,  417,  432,  448,  463,  479,  494,  509,  525,  540,  556,  571,  586,  602,
        617,  632,  648,  663,  678,  693,  708,  724,  739,  754,  769,  784,  799,  814,  829,  843,  858,  873,  888,
        902,  917,  931,  946,  960,  975,  989,  1003, 1018, 1032, 1046, 1060, 1074, 1088, 1101, 1115, 1129, 1143, 1156,
        1170, 1183, 1196, 1210, 1223, 1236, 1249, 1262, 1275, 1287, 1300, 1313, 1325, 1338, 1350, 1362, 1375, 1387, 1399,
        1411, 1423, 1435, 1446, 1458, 1469, 1481, 1492, 1504, 1515, 1526, 1537, 1548, 1559, 1570, 1581, 1591, 1602, 1613,
        1623, 1633, 1644, 1654, 1664, 1674, 1684, 1694, 1704, 1714, 1723, 1733, 1742, 1752, 1761, 1771, 1780, 1789, 1798,
        1807, 1816, 1825, 1834, 1843, 1851, 1860, 1869, 1877, 1886, 1894, 1903, 1911, 1919, 1928, 1936, 1944, 1952, 1960,
        1968, 1976, 1984, 1992, 2000, 2008, 2015, 2023, 2031, 2038, 2046, 2054, 2061, 2069, 2076, 2084, 2091, 2098, 2106,
        2113, 2120, 2127, 2135, 2142, 2149, 2156, 2163, 2170, 2177, 2184, 2190, 2197, 2204, 2211, 2218, 2224, 2231, 2238,
        2244, 2251, 2257, 2264, 2270, 2277, 2283, 2289, 2296, 2302, 2308, 2314, 2320, 2327, 2333, 2339, 2345, 2351, 2357,
        2363, 2369, 2374, 2380, 2386, 2392, 2398, 2403, 2409, 2415, 2420, 2426, 2431, 2437, 2442, 2448, 2453, 2458, 2464,
        2469, 2474, 2480, 2485, 2490, 2495, 2500, 2505, 2511, 2516, 2521, 2526, 2531, 2536, 2540, 2545, 2550, 2555, 2560,
        2565, 2569, 2574, 2579, 2584, 2588, 2593, 2597, 2602, 2607, 2611, 2616, 2620, 2625, 2629, 2633, 2638, 2642, 2647,
        2651, 2655, 2660, 2664, 2668, 2672, 2677, 2681, 2685, 2689, 2693, 2697, 2702, 2706, 2710, 2714, 2718, 2722, 2726,
        2730, 2734, 2738, 2742, 2745, 2749, 2753, 2757, 2761, 2765, 2768, 2772, 2776, 2780, 2783, 2787, 2791, 2794, 2798,
        2802, 2805, 2809, 2813, 2816, 2820, 2823, 2827, 2830, 2834, 2837, 2841, 2844, 2847, 2851, 2854, 2857, 2861, 2864,
        2867, 2871, 2874, 2877, 2881, 2884, 2887, 2890, 2893, 2897, 2900, 2903, 2906, 2909, 2912, 2915, 2918, 2921, 2924,
        2927, 2930, 2933, 2936, 2939, 2942, 2945, 2948, 2951, 2954, 2957, 2960, 2963, 2966, 2968, 2971, 2974, 2977, 2980,
        2983, 2985, 2988, 2991, 2994, 2997, 2999, 3002, 3005, 3008, 3010, 3013, 3016, 3018, 3021, 3024, 3027, 3029, 3032,
        3035, 3037, 3040, 3043, 3045, 3048, 3051, 3053, 3056, 3059, 3061, 3064, 3067, 3069, 3072, 3075, 3077, 3080, 3082,
        3085, 3088, 3090, 3093, 3096, 3098, 3101, 3103, 3106, 3108, 3111, 3114, 3116, 3119, 3121, 3124, 3126, 3129, 3131,
        3134, 3136, 3139, 3141, 3144, 3146, 3149, 3151, 3154, 3156, 3159, 3161, 3164, 3166, 3169, 3171, 3174, 3176, 3178,
        3181, 3183, 3186, 3188, 3190, 3193, 3195, 3198, 3200, 3202, 3205, 3207, 3209, 3212, 3214, 3216, 3219, 3221, 3223,
        3226, 3228, 3230, 3233, 3235, 3237, 3239, 3242, 3244, 3246, 3248, 3251, 3253, 3255, 3257, 3260, 3262, 3264, 3266,
        3268, 3271, 3273, 3275, 3277, 3279, 3281, 3284, 3286, 3288, 3290, 3292, 3294, 3296, 3298, 3301, 3303, 3305, 3307,
        3309, 3311, 3313, 3315, 3317, 3319, 3321, 3323, 3325, 3327, 3329, 3331, 3333, 3335, 3337, 3339, 3341, 3343, 3345,
        3347, 3349, 3351, 3353, 3355, 3357, 3359, 3361, 3363, 3365, 3367, 3368, 3370, 3372, 3374, 3376, 3378, 3380, 3382,
        3383, 3385, 3387, 3389, 3391, 3393, 3394, 3396, 3398, 3400, 3402, 3403, 3405, 3407, 3409, 3410, 3412, 3414, 3416,
        3417, 3419, 3421, 3423, 3424, 3426, 3428, 3429, 3431, 3433, 3434, 3436, 3438, 3439, 3441, 3443, 3444, 3446, 3447,
        3449, 3451, 3452, 3454, 3455, 3457, 3458, 3460, 3462, 3463, 3465, 3466, 3468, 3469, 3471, 3472, 3474, 3475, 3477,
        3478, 3480, 3481, 3483, 3484, 3486, 3487, 3489, 3490, 3491, 3493, 3494, 3496, 3497, 3499, 3500, 3501, 3503, 3504,
        3506, 3507, 3508, 3510, 3511, 3513, 3514, 3515, 3517, 3518, 3519, 3521, 3522, 3523, 3525, 3526, 3527, 3529, 3530,
        3531, 3533, 3534, 3535, 3537, 3538, 3539, 3541, 3542, 3543, 3545, 3546, 3547, 3548, 3550, 3551, 3552, 3554, 3555,
        3556, 3557, 3559, 3560, 3561, 3563, 3564, 3565, 3566, 3568, 3569, 3570, 3571, 3573, 3574, 3575, 3577, 3578, 3579,
        3580, 3582, 3583, 3584, 3585, 3587, 3588, 3589, 3590, 3592, 3593, 3594, 3595, 3597, 3598, 3599, 3601, 3602, 3603,
        3604, 3606, 3607, 3608, 3609, 3611, 3612, 3613, 3615, 3616, 3617, 3618, 3620, 3621, 3622, 3624, 3625, 3626, 3628,
        3629, 3630, 3631, 3633, 3634, 3635, 3637, 3638, 3639, 3641, 3642, 3643, 3645, 3646, 3647, 3648, 3650, 3651, 3652,
        3654, 3655, 3656, 3658, 3659, 3660, 3662, 3663, 3664, 3666, 3667, 3668, 3670, 3671, 3672, 3674, 3675, 3677, 3678,
        3679, 3681, 3682, 3683, 3685, 3686, 3687, 3689, 3690, 3691, 3693, 3694, 3696, 3697, 3698, 3700, 3701, 3702, 3704,
        3705, 3706, 3708, 3709, 3711, 3712, 3713, 3715, 3716, 3718, 3719, 3720, 3722, 3723, 3724, 3726, 3727, 3729, 3730,
        3731, 3733, 3734, 3736, 3737, 3738, 3740, 3741, 3743, 3744, 3745, 3747, 3748, 3750, 3751, 3752, 3754, 3755, 3757,
        3758, 3760, 3761, 3762, 3764, 3765, 3767, 3768, 3769, 3771, 3772, 3774, 3775, 3777, 3778, 3779, 3781, 3782, 3784,
        3785, 3787, 3788, 3789, 3791, 3792, 3794, 3795, 3797, 3798, 3800, 3801, 3802, 3804, 3805, 3807, 3808, 3810, 3811,
        3813, 3814, 3815, 3817, 3818, 3820, 3821, 3823, 3824, 3826, 3827, 3829, 3830, 3831, 3833, 3834, 3836, 3837, 3839,
        3840, 3842, 3843, 3845, 3846, 3848, 3849, 3851, 3852, 3853, 3855, 3856, 3858, 3859, 3861, 3862, 3864, 3865, 3867,
        3868, 3870, 3871, 3873, 3874, 3876, 3877, 3879, 3880, 3882, 3883, 3885, 3886, 3888, 3889, 3890, 3892, 3893, 3895,
        3896, 3898, 3899, 3901, 3902, 3904, 3905, 3907, 3908, 3910, 3911, 3913, 3914, 3916, 3917, 3919, 3920, 3922, 3923,
        3925, 3926, 3928, 3929, 3931, 3932, 3934, 3935, 3937, 3938, 3940, 3941, 3943, 3944, 3946, 3947, 3949, 3950, 3952,
        3953, 3955, 3956, 3958, 3959, 3961, 3962, 3964, 3966, 3967, 3969, 3970, 3972, 3973, 3975, 3976, 3978, 3979, 3981,
        3982, 3984, 3985, 3987, 3988, 3990, 3991, 3993, 3994, 3996, 3997, 3999, 4000, 4002, 4003, 4005, 4006, 4008, 4010,
        4011, 4013, 4014, 4016, 4017, 4019, 4020, 4022, 4023, 4025, 4026, 4028, 4029, 4031, 4032, 4034, 4035, 4037, 4038,
        4040, 4042, 4043, 4045, 4046, 4048, 4049, 4051, 4052, 4054, 4055, 4057, 4058, 4060, 4061, 4063, 4064, 4066, 4067,
        4069, 4071, 4072, 4074, 4075, 4077, 4078, 4080, 4081, 4083, 4084, 4086, 4087, 4089, 4090, 4092, 4093, 4095
    }
};

static const ISP_CMOS_GAMMA_S g_stIspGammaFSWDR = {
#if 1
    {
        0,    5,    10,   15,   20,   25,   30,   35,   40,   44,   49,   54,   59,   64,   69,   74,   79,   84,   89,
        94,   99,   103,  108,  113,  118,  123,  128,  133,  138,  142,  147,  152,  157,  162,  167,  171,  176,  181,
        186,  191,  196,  200,  205,  210,  215,  220,  224,  229,  234,  239,  244,  249,  253,  258,  263,  268,  273,
        278,  283,  287,  292,  297,  302,  307,  312,  317,  321,  326,  331,  336,  341,  346,  351,  356,  361,  366,
        371,  376,  381,  386,  391,  396,  401,  406,  411,  416,  421,  426,  431,  436,  441,  446,  451,  456,  461,
        466,  472,  477,  482,  487,  492,  498,  503,  508,  513,  519,  524,  529,  535,  540,  545,  551,  556,  561,
        567,  572,  578,  583,  589,  594,  600,  605,  611,  616,  622,  628,  633,  639,  645,  650,  656,  662,  667,
        673,  679,  685,  691,  697,  702,  708,  714,  720,  726,  732,  738,  744,  750,  756,  762,  768,  774,  780,
        787,  793,  799,  805,  811,  817,  824,  830,  836,  842,  849,  855,  861,  867,  874,  880,  886,  893,  899,
        905,  912,  918,  925,  931,  937,  944,  950,  957,  963,  970,  976,  982,  989,  995,  1002, 1008, 1015, 1021,
        1028, 1034, 1041, 1047, 1054, 1060, 1067, 1074, 1080, 1087, 1093, 1100, 1106, 1113, 1119, 1126, 1132, 1139, 1145,
        1152, 1159, 1165, 1172, 1178, 1185, 1191, 1198, 1204, 1211, 1217, 1224, 1230, 1237, 1244, 1250, 1257, 1263, 1270,
        1276, 1283, 1289, 1295, 1302, 1308, 1315, 1321, 1328, 1334, 1341, 1347, 1353, 1360, 1366, 1373, 1379, 1385, 1392,
        1398, 1404, 1411, 1417, 1423, 1430, 1436, 1442, 1448, 1455, 1461, 1467, 1473, 1479, 1486, 1492, 1498, 1505, 1511,
        1517, 1524, 1530, 1536, 1543, 1549, 1555, 1562, 1568, 1575, 1581, 1587, 1594, 1600, 1607, 1613, 1620, 1626, 1632,
        1639, 1645, 1652, 1658, 1665, 1671, 1678, 1684, 1690, 1697, 1703, 1710, 1716, 1723, 1729, 1736, 1742, 1749, 1755,
        1761, 1768, 1774, 1781, 1787, 1794, 1800, 1806, 1813, 1819, 1826, 1832, 1838, 1845, 1851, 1857, 1864, 1870, 1876,
        1883, 1889, 1895, 1902, 1908, 1914, 1920, 1927, 1933, 1939, 1945, 1952, 1958, 1964, 1970, 1976, 1982, 1988, 1995,
        2001, 2007, 2013, 2019, 2025, 2031, 2037, 2043, 2049, 2055, 2060, 2066, 2072, 2078, 2084, 2090, 2095, 2101, 2107,
        2113, 2118, 2124, 2130, 2135, 2141, 2147, 2152, 2158, 2163, 2169, 2174, 2180, 2185, 2190, 2196, 2201, 2206, 2212,
        2217, 2222, 2227, 2232, 2238, 2243, 2248, 2253, 2258, 2263, 2268, 2273, 2278, 2283, 2287, 2292, 2297, 2302, 2307,
        2312, 2316, 2321, 2326, 2330, 2335, 2340, 2344, 2349, 2354, 2358, 2363, 2367, 2372, 2376, 2381, 2385, 2390, 2394,
        2398, 2403, 2407, 2411, 2416, 2420, 2424, 2429, 2433, 2437, 2441, 2446, 2450, 2454, 2458, 2462, 2467, 2471, 2475,
        2479, 2483, 2487, 2491, 2495, 2499, 2503, 2507, 2511, 2515, 2519, 2523, 2527, 2531, 2535, 2539, 2543, 2547, 2551,
        2555, 2558, 2562, 2566, 2570, 2574, 2578, 2582, 2585, 2589, 2593, 2597, 2601, 2604, 2608, 2612, 2616, 2619, 2623,
        2627, 2631, 2634, 2638, 2642, 2646, 2649, 2653, 2657, 2660, 2664, 2668, 2671, 2675, 2679, 2683, 2686, 2690, 2694,
        2697, 2701, 2705, 2708, 2712, 2716, 2719, 2723, 2727, 2730, 2734, 2738, 2741, 2745, 2749, 2752, 2756, 2760, 2764,
        2768, 2771, 2775, 2779, 2782, 2786, 2789, 2793, 2796, 2800, 2804, 2807, 2811, 2814, 2818, 2821, 2825, 2828, 2832,
        2835, 2839, 2842, 2846, 2849, 2853, 2856, 2860, 2863, 2867, 2870, 2873, 2877, 2880, 2884, 2887, 2891, 2894, 2897,
        2901, 2904, 2908, 2911, 2914, 2918, 2921, 2924, 2928, 2931, 2934, 2938, 2941, 2944, 2948, 2951, 2954, 2958, 2961,
        2964, 2967, 2971, 2974, 2977, 2981, 2984, 2987, 2990, 2994, 2997, 3000, 3003, 3006, 3010, 3013, 3016, 3019, 3023,
        3026, 3029, 3032, 3035, 3038, 3042, 3045, 3048, 3051, 3054, 3057, 3061, 3064, 3067, 3070, 3073, 3076, 3079, 3082,
        3086, 3089, 3092, 3095, 3098, 3101, 3104, 3107, 3110, 3113, 3116, 3119, 3122, 3125, 3129, 3132, 3135, 3138, 3141,
        3144, 3147, 3150, 3153, 3156, 3159, 3162, 3165, 3168, 3171, 3174, 3177, 3180, 3183, 3185, 3188, 3191, 3194, 3197,
        3200, 3203, 3206, 3209, 3212, 3215, 3218, 3221, 3224, 3227, 3229, 3232, 3235, 3238, 3241, 3244, 3247, 3250, 3252,
        3255, 3258, 3261, 3264, 3267, 3270, 3272, 3275, 3278, 3281, 3284, 3287, 3289, 3292, 3295, 3298, 3301, 3303, 3306,
        3309, 3312, 3315, 3317, 3320, 3323, 3326, 3328, 3331, 3334, 3337, 3339, 3342, 3345, 3348, 3350, 3353, 3356, 3359,
        3361, 3364, 3367, 3370, 3372, 3375, 3378, 3380, 3383, 3386, 3388, 3391, 3394, 3396, 3399, 3402, 3405, 3407, 3410,
        3413, 3415, 3418, 3420, 3423, 3426, 3428, 3431, 3434, 3436, 3439, 3442, 3444, 3447, 3449, 3452, 3455, 3457, 3460,
        3462, 3465, 3468, 3470, 3473, 3475, 3478, 3481, 3483, 3486, 3488, 3491, 3493, 3496, 3498, 3501, 3504, 3506, 3509,
        3511, 3514, 3516, 3519, 3521, 3524, 3526, 3529, 3531, 3534, 3536, 3539, 3541, 3544, 3546, 3549, 3551, 3554, 3556,
        3559, 3561, 3564, 3566, 3569, 3571, 3574, 3576, 3579, 3581, 3584, 3586, 3588, 3591, 3593, 3596, 3598, 3601, 3603,
        3606, 3608, 3610, 3613, 3615, 3618, 3620, 3622, 3625, 3627, 3630, 3632, 3634, 3637, 3639, 3642, 3644, 3646, 3649,
        3651, 3654, 3656, 3658, 3661, 3663, 3665, 3668, 3670, 3673, 3675, 3677, 3680, 3682, 3684, 3687, 3689, 3691, 3694,
        3696, 3698, 3701, 3703, 3705, 3708, 3710, 3712, 3714, 3717, 3719, 3721, 3724, 3726, 3728, 3731, 3733, 3735, 3737,
        3740, 3742, 3744, 3747, 3749, 3751, 3753, 3756, 3758, 3760, 3762, 3765, 3767, 3769, 3771, 3774, 3776, 3778, 3780,
        3783, 3785, 3787, 3789, 3792, 3794, 3796, 3798, 3801, 3803, 3805, 3807, 3809, 3812, 3814, 3816, 3818, 3820, 3823,
        3825, 3827, 3829, 3831, 3834, 3836, 3838, 3840, 3842, 3844, 3847, 3849, 3851, 3853, 3855, 3857, 3860, 3862, 3864,
        3866, 3868, 3870, 3873, 3875, 3877, 3879, 3881, 3883, 3885, 3888, 3890, 3892, 3894, 3896, 3898, 3900, 3902, 3905,
        3907, 3909, 3911, 3913, 3915, 3917, 3919, 3921, 3924, 3926, 3928, 3930, 3932, 3934, 3936, 3938, 3940, 3942, 3944,
        3946, 3949, 3951, 3953, 3955, 3957, 3959, 3961, 3963, 3965, 3967, 3969, 3971, 3973, 3975, 3977, 3979, 3981, 3984,
        3986, 3988, 3990, 3992, 3994, 3996, 3998, 4000, 4002, 4004, 4006, 4008, 4010, 4012, 4014, 4016, 4018, 4020, 4022,
        4024, 4026, 4028, 4030, 4032, 4034, 4036, 4038, 4040, 4042, 4044, 4046, 4048, 4050, 4052, 4054, 4056, 4058, 4060,
        4062, 4064, 4066, 4068, 4070, 4072, 4074, 4075, 4077, 4079, 4081, 4083, 4085, 4087, 4089, 4091, 4093, 4095
    }
#endif
};

#ifdef CONFIG_HI_ISP_PREGAMMA_SUPPORT
static const ISP_CMOS_PREGAMMA_S g_stPreGamma = {
    0,
    {
        0,       12417,   21619,   29902,   37641,   44997,   52063,   58896,   65536,   72012,   78344,   84552,
        90647,   96641,   102544,  108363,  114105,  119775,  125379,  130921,  136406,  141835,  147213,  152542,
        157825,  163065,  168262,  173420,  178540,  183623,  188671,  193686,  198668,  203619,  208541,  213433,
        218298,  223136,  227947,  232734,  237496,  242234,  246949,  251642,  256313,  260962,  265592,  270201,
        274790,  279360,  283912,  288446,  292962,  297460,  301942,  306407,  310855,  315288,  319706,  324108,
        328495,  332868,  337226,  341571,  345901,  350218,  354522,  358813,  363091,  367356,  371609,  375850,
        380079,  384296,  388502,  392696,  396880,  401052,  405213,  409364,  413504,  417634,  421754,  425863,
        429963,  434053,  438134,  442205,  446266,  450319,  454362,  458396,  462422,  466438,  470446,  474446,
        478437,  482420,  486395,  490361,  494320,  498270,  502213,  506148,  510076,  513996,  517908,  521813,
        525711,  529601,  533485,  537361,  541231,  545093,  548949,  552798,  556640,  560475,  564305,  568127,
        571943,  575753,  579557,  583354,  587145,  590930,  594709,  598482,  602249,  606010,  609765,  613515,
        617259,  620997,  624729,  628456,  632178,  635894,  639604,  643309,  647009,  650704,  654393,  658077,
        661756,  665430,  669099,  672763,  676421,  680075,  683724,  687368,  691008,  694642,  698272,  701897,
        705517,  709133,  712744,  716351,  719953,  723550,  727143,  730732,  734316,  737896,  741471,  745043,
        748610,  752172,  755731,  759285,  762835,  766381,  769923,  773461,  776995,  780525,  784050,  787572,
        791090,  794604,  798114,  801620,  805123,  808622,  812116,  815608,  819095,  822579,  826059,  829535,
        833008,  836477,  839942,  843404,  846862,  850317,  853768,  857216,  860661,  864102,  867539,  870973,
        874404,  877831,  881255,  884676,  888093,  891507,  894918,  898326,  901730,  905131,  908529,  911924,
        915316,  918704,  922090,  925472,  928851,  932227,  935600,  938970,  942337,  945701,  949062,  952420,
        955775,  959127,  962477,  965823,  969166,  972507,  975845,  979179,  982511,  985840,  989167,  992490,
        995811,  999129,  1002444, 1005757, 1009067, 1012374, 1015678, 1018980, 1022279, 1025575, 1028869, 1032160,
        1035448, 1038734, 1042017, 1045298, 1048575
    }
};
#endif

#ifdef CONFIG_HI_ISP_EDGEMARK_SUPPORT
static const ISP_CMOS_EDGEMARK_S g_stIspEdgeMark = {
    0,        /* HI_BOOL bEnable */
    100,      /* HI_U8     u8Threshold */
    0xFF0000, /* HI_U32    u32Color */
};
#endif

#ifdef CONFIG_HI_ISP_HLC_SUPPORT
static const ISP_CMOS_HLC_S g_stIspHlc = {
    0,   /* HI_BOOL bEnable */
    248, /* HI_U8 u8LumaThr */
    10,  /* HI_U8 u8LumaTarget */
};
#endif

static const ISP_CMOS_SHARPEN_S g_stIspYuvSharpen = {
    /* u8SkinUmin */
    100,
    /* u8SkinVmin */
    135,
    /* u8SkinUmax */
    128,
    /* u8SkinVmax */
    150,

    /* Manual Para */
    {
        /* au8LumaWgt[ISP_SHARPEN_LUMA_NUM] */
        {
            127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
            127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127
        },
        /* u16TextureStr[ISP_SHARPEN_GAIN_NUM] */
        {
            250, 420, 390, 390, 390, 390, 390, 370, 350, 330, 310, 290, 270, 270, 270, 270,
            270, 270, 266, 260, 244, 230, 230, 230, 230, 230, 230, 210, 190, 190, 170, 150
        },
        /* u16EdgeStr[ISP_SHARPEN_GAIN_NUM] */
        {
            120, 123, 125, 128, 130, 135, 140, 148, 160, 168, 180, 190, 200, 210, 210, 210,
            210, 210, 200, 190, 185, 175, 165, 160, 146, 136, 130, 128, 125, 123, 120, 120
        },
        /* u16TextureFreq */
        190,
        /* u16EdgeFreq */
        128,
        /* u8OverShoot */
        65,
        /* u8UnderShoot */
        75,
        /* u8shootSupStr */
        7,
        /* u8shootSupAdj */
        9,
        /* u8DetailCtrl */
        128,
        /* u8DetailCtrlThr */
        180,
        /* u8EdgeFiltStr */
        60,
        /* u8EdgeFiltMaxCap */
        18,
        /* u8RGain */
        20,
        /* u8GGain */
        32,
        /* u8BGain */
        20,
        /* u8SkinGain */
        25,
        /* u8MaxSharpGain */
        40
    },

    /* Auto Para */
    {
        /* au16LumaWgt[ISP_SHARPEN_GAIN_NUM][ISP_AUTO_ISO_STRENGTH_NUM] */
        /* ISO: 100,  200,  400,  800,  1600,  3200,  6400, 12800, 25600, 51200, 102400, 204800, 409600, 819200,
           1638400, 3276800 */
        {
            { 127, 127, 127, 80, 80, 80, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60 },
            { 127, 127, 127, 80, 80, 80, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60 },
            { 127, 127, 127, 80, 80, 80, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60 },
            { 127, 127, 127, 85, 85, 85, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60 },
            { 127, 127, 127, 90, 90, 90, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60 },
            { 127, 127, 127, 95, 95, 95, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60 },
            { 127, 127, 127, 100, 100, 100, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72 },
            { 127, 127, 127, 105, 105, 105, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85 },
            { 127, 127, 127, 110, 110, 110, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100 },
            { 127, 127, 127, 120, 120, 120, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114 },
            { 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127 },
            { 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127 },
            { 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127 },
            { 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127 },
            { 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127 },
            { 110, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127 },
            { 90, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127 },
            { 90, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127 },
            { 90, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127 },
            { 90, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127 },
            { 90, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127 },
            { 90, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127 },
            { 90, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127 },
            { 90, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127 },
            { 90, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127 },
            { 90, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127 },
            { 90, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127 },
            { 90, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127 },
            { 90, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127 },
            { 90, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127 },
            { 90, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127 },
            { 90, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127 }
        },
        /* au16TextureStr */
        /* ISO */
        /* 100,  200,    400,     800,    1600,    3200,    6400,    12800,    25600,   51200,  102400,  204800,
           409600,   819200,   1638400,  3276800 */
        {
            { 180, 180, 170, 160, 155, 90, 90, 60, 60, 60, 60, 60, 60, 60, 60, 60 },
            { 205, 205, 185, 166, 165, 100, 100, 80, 80, 80, 80, 80, 80, 80, 80, 80 },
            { 235, 235, 200, 175, 170, 120, 120, 100, 100, 100, 100, 100, 100, 100, 100, 100 },
            { 260, 260, 215, 190, 180, 145, 145, 130, 130, 130, 130, 130, 130, 130, 130, 130 },
            { 285, 285, 235, 210, 190, 150, 200, 150, 150, 150, 150, 150, 150, 150, 150, 150 },
            { 295, 295, 255, 220, 205, 160, 220, 180, 180, 180, 180, 180, 180, 180, 180, 180 },
            { 310, 310, 280, 245, 215, 165, 240, 200, 200, 200, 200, 200, 200, 200, 200, 200 },
            { 315, 315, 295, 260, 225, 175, 240, 210, 210, 210, 210, 210, 210, 210, 210, 210 },
            { 320, 320, 310, 270, 230, 180, 240, 220, 220, 220, 220, 220, 220, 220, 220, 220 },
            { 330, 330, 320, 280, 245, 190, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230 },
            { 330, 330, 330, 290, 250, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230 },
            { 330, 330, 330, 295, 255, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230 },
            { 330, 330, 330, 300, 255, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230 },
            { 330, 330, 330, 300, 260, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230 },
            { 325, 325, 325, 305, 260, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230 },
            { 320, 320, 320, 305, 260, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230 },
            { 315, 315, 315, 305, 260, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230 },
            { 310, 310, 310, 300, 260, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230 },
            { 305, 305, 305, 290, 255, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230 },
            { 295, 295, 295, 284, 250, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230 },
            { 288, 288, 288, 270, 240, 230, 230, 210, 210, 210, 210, 210, 210, 210, 210, 210 },
            { 280, 280, 280, 265, 235, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200 },
            { 275, 275, 275, 255, 230, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200 },
            { 270, 270, 270, 245, 220, 220, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200 },
            { 265, 265, 265, 240, 210, 210, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200 },
            { 260, 260, 260, 230, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200 },
            { 250, 250, 250, 220, 192, 192, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200 },
            { 240, 240, 240, 205, 180, 180, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200 },
            { 230, 230, 230, 190, 170, 170, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200 },
            { 215, 215, 215, 170, 155, 155, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200 },
            { 180, 180, 180, 150, 145, 145, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200 },
            { 130, 130, 130, 130, 130, 130, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200 }
        },
        /* au16EdgeStr */
        /* ISO */
        /* 100,  200,    400,     800,    1600,    3200,    6400,    12800,    25600,   51200,  102400,  204800,
           409600,   819200,   1638400,  3276800 */
        {
            { 195, 195, 195, 195, 195, 195, 400, 440, 500, 475, 475, 475, 475, 475, 475, 475 },
            { 200, 200, 200, 200, 200, 200, 400, 440, 500, 485, 485, 485, 485, 485, 485, 485 },
            { 220, 220, 220, 220, 220, 220, 400, 440, 500, 495, 495, 495, 495, 495, 495, 495 },
            { 230, 230, 230, 230, 230, 230, 400, 440, 500, 500, 500, 500, 500, 500, 500, 500 },
            { 240, 240, 240, 240, 240, 240, 400, 440, 500, 510, 510, 510, 510, 510, 510, 510 },
            { 250, 250, 250, 250, 250, 250, 400, 440, 500, 520, 520, 520, 520, 520, 520, 520 },
            { 260, 260, 260, 260, 260, 260, 420, 460, 540, 530, 530, 530, 530, 530, 530, 530 },
            { 270, 270, 270, 270, 270, 270, 420, 460, 540, 540, 540, 540, 540, 540, 540, 540 },
            { 280, 280, 280, 280, 280, 280, 420, 460, 540, 545, 545, 545, 545, 545, 545, 545 },
            { 280, 280, 280, 280, 280, 280, 420, 460, 540, 550, 550, 550, 550, 550, 550, 550 },
            { 285, 285, 285, 285, 285, 285, 420, 460, 540, 560, 560, 560, 560, 560, 560, 560 },
            { 290, 290, 290, 290, 290, 290, 420, 460, 540, 565, 565, 565, 565, 565, 565, 565 },
            { 290, 290, 290, 290, 290, 290, 420, 460, 540, 570, 570, 570, 570, 570, 570, 570 },
            { 295, 295, 295, 295, 295, 295, 430, 470, 550, 575, 575, 575, 575, 575, 575, 575 },
            { 295, 295, 295, 295, 295, 295, 430, 470, 550, 580, 580, 580, 580, 580, 580, 580 },
            { 295, 295, 295, 295, 295, 295, 440, 470, 550, 575, 575, 575, 575, 575, 575, 575 },
            { 295, 295, 295, 295, 295, 295, 440, 470, 550, 570, 570, 570, 570, 570, 570, 570 },
            { 295, 295, 295, 295, 295, 295, 450, 480, 580, 565, 565, 565, 565, 565, 565, 565 },
            { 295, 295, 295, 295, 295, 295, 460, 500, 580, 560, 560, 560, 560, 560, 560, 560 },
            { 290, 290, 290, 290, 290, 290, 460, 500, 580, 555, 555, 555, 555, 555, 555, 555 },
            { 285, 285, 285, 285, 285, 285, 460, 500, 580, 550, 550, 550, 550, 550, 550, 550 },
            { 280, 280, 280, 280, 280, 280, 460, 500, 580, 540, 540, 540, 540, 540, 540, 540 },
            { 275, 275, 275, 275, 275, 275, 460, 500, 580, 535, 535, 535, 535, 535, 535, 535 },
            { 265, 265, 265, 265, 265, 265, 460, 500, 580, 530, 530, 530, 530, 530, 530, 530 },
            { 250, 250, 250, 250, 250, 250, 460, 500, 580, 520, 520, 520, 520, 520, 520, 520 },
            { 240, 240, 240, 240, 240, 240, 470, 500, 580, 515, 515, 515, 515, 515, 515, 515 },
            { 220, 220, 220, 220, 220, 220, 470, 500, 580, 510, 510, 510, 510, 510, 510, 510 },
            { 200, 200, 200, 200, 200, 200, 470, 500, 580, 500, 500, 500, 500, 500, 500, 500 },
            { 180, 180, 180, 180, 180, 180, 480, 500, 580, 495, 495, 495, 495, 495, 495, 495 },
            { 160, 160, 160, 160, 160, 160, 480, 500, 580, 485, 485, 485, 485, 485, 485, 485 },
            { 140, 140, 140, 140, 140, 140, 480, 500, 580, 480, 480, 480, 480, 480, 480, 480 },
            { 125, 125, 125, 125, 125, 125, 480, 500, 580, 470, 470, 470, 470, 470, 470, 470 }
        },
        /* au16TextureFreq[ISP_AUTO_ISO_STRENGTH_NUM] */
        /* ISO */
        /* 100, 200, 400, 800, 1600, 3200, 6400, 12800, 25600, 51200,  102400,  204800,   409600,   819200,   1638400,
           3276800 */
        { 180, 180, 180, 180, 160, 160, 128, 128, 128, 128, 128, 100, 100, 100, 100, 100 },
        /* au16EdgeFreq[ISP_AUTO_ISO_STRENGTH_NUM] */
        { 128, 100, 100, 100, 100, 100, 100, 100, 100, 100, 96, 96, 96, 96, 96, 96 },
        /* au8OverShoot[ISP_AUTO_ISO_STRENGTH_NUM] */
        { 65, 68, 70, 76, 80, 80, 70, 60, 50, 50, 30, 10, 10, 10, 10, 10 },
        /* au8UnderShoot[ISP_AUTO_ISO_STRENGTH_NUM] */
        { 68, 75, 80, 80, 80, 80, 80, 70, 50, 30, 20, 20, 15, 15, 15, 15 },
        /* au8ShootSupStr[ISP_AUTO_ISO_STRENGTH_NUM] */
        { 8, 8, 7, 7, 7, 6, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0 },
        /* au8ShootSupAdj[ISP_AUTO_ISO_STRENGTH_NUM] */
        { 9, 9, 8, 8, 7, 7, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0 },
        /* au8DetailCtrl[ISP_AUTO_ISO_STRENGTH_NUM] */
        { 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 120, 120, 120, 120, 120, 120 },
        /* au8DetailCtrlThr[ISP_AUTO_ISO_STRENGTH_NUM] */
        { 180, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160 },
        /* au8EdgeFiltStr[ISP_AUTO_ISO_STRENGTH_NUM] */
        { 60, 58, 60, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62 },
        /* au8EdgeFiltMaxCap */
        { 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18 },
        /* au8RGain[ISP_AUTO_ISO_STRENGTH_NUM] */
        { 12, 12, 18, 24, 24, 24, 26, 28, 31, 31, 31, 31, 31, 31, 31, 31 },
        /* au8GGain[ISP_AUTO_ISO_STRENGTH_NUM] */
        { 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32 },
        /* au8BGain[ISP_AUTO_ISO_STRENGTH_NUM] */
        { 18, 20, 24, 24, 24, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22 },
        /* au8SkinGain[ISP_AUTO_ISO_STRENGTH_NUM] */
        { 30, 27, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31 },
        /* u8MaxSharpGain[ISP_AUTO_ISO_STRENGTH_NUM] */
        { 60, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40 }
    },

};

static const ISP_CMOS_SHARPEN_S g_stIspYuvSharpenWdr = {
    /* u8SkinUmin */
    100,
    /* u8SkinVmin */
    135,
    /* u8SkinUmax */
    128,
    /* u8SkinVmax */
    150,
    /* Manual Para */
    {
        /* au8LumaWgt[ISP_SHARPEN_LUMA_NUM] */
        {
            127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
            127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127
        },
        /* u16TextureStr[ISP_SHARPEN_GAIN_NUM] */
        {
            250, 420, 390, 390, 390, 390, 390, 370, 350, 330, 310, 290, 270, 270, 270, 270,
            270, 270, 266, 260, 244, 230, 230, 230, 230, 230, 230, 210, 190, 190, 170, 150
        },
        /* u16EdgeStr[ISP_SHARPEN_GAIN_NUM] */
        {
            120, 123, 125, 128, 130, 135, 140, 148, 160, 168, 180, 190, 200, 210, 210, 210,
            210, 210, 200, 190, 185, 175, 165, 160, 146, 136, 130, 128, 125, 123, 120, 120
        },
        /* u16TextureFreq */
        190,
        /* u16EdgeFreq */
        128,
        /* u8OverShoot */
        65,
        /* u8UnderShoot */
        75,
        /* u8shootSupStr */
        7,
        /* u8shootSupAdj */
        9,
        /* u8DetailCtrl */
        128,
        /* u8DetailCtrlThr */
        180,
        /* u8EdgeFiltStr */
        60,
        /* u8EdgeFiltMaxCap */
        18,
        /* u8RGain */
        20,
        /* u8GGain */
        32,
        /* u8BGain */
        20,
        /* u8SkinGain */
        25,
        /* u8MaxSharpGain */
        40
    },
    /* Auto Para */
    {
        /* au16LumaWgt[ISP_SHARPEN_GAIN_NUM][ISP_AUTO_ISO_STRENGTH_NUM] */
        /* ISO: 100,  200,  400,  800,  1600,  3200,  6400, 12800, 25600, 51200, 102400, 204800, 409600, 819200,
           1638400, 3276800 */
        {
            { 127, 127, 127, 80, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60 },
            { 127, 127, 127, 80, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60 },
            { 127, 127, 127, 80, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60 },
            { 127, 127, 127, 80, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60 },
            { 127, 127, 127, 80, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60 },
            { 127, 127, 127, 80, 70, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60 },
            { 127, 127, 127, 80, 80, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72 },
            { 127, 127, 127, 90, 90, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85 },
            { 127, 127, 127, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100 },
            { 127, 127, 127, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114 },
            { 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127 },
            { 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127 },
            { 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127 },
            { 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127 },
            { 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127 },
            { 110, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127 },
            { 90, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127 },
            { 90, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127 },
            { 90, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127 },
            { 90, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127 },
            { 90, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127 },
            { 90, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127 },
            { 90, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127 },
            { 90, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127 },
            { 90, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127 },
            { 90, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127 },
            { 90, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127 },
            { 90, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127 },
            { 90, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127 },
            { 90, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127 },
            { 90, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127 },
            { 90, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127 }
        },
        /* au16TextureStr[ISP_SHARPEN_GAIN_NUM][ISP_AUTO_ISO_STRENGTH_NUM] */
        /* ISO: 100, 200, 400, 800, 1600, 3200, 6400, 12800, 10000, 51200, 102400, 204800, 409600, 819200, 1638400,
           3276800 */
        {
            { 180, 180, 170, 160, 155, 90, 90, 60, 60, 60, 60, 60, 60, 60, 60, 60 },
            { 205, 205, 185, 166, 165, 100, 100, 80, 80, 80, 80, 80, 80, 80, 80, 80 },
            { 235, 235, 200, 175, 170, 120, 120, 100, 100, 100, 100, 100, 100, 100, 100, 100 },
            { 260, 260, 215, 190, 180, 145, 145, 130, 130, 130, 130, 130, 130, 130, 130, 130 },
            { 285, 285, 235, 210, 190, 150, 200, 150, 150, 150, 150, 150, 150, 150, 150, 150 },
            { 295, 295, 255, 220, 205, 160, 220, 180, 180, 180, 180, 180, 180, 180, 180, 180 },
            { 310, 310, 280, 245, 215, 165, 240, 200, 200, 200, 200, 200, 200, 200, 200, 200 },
            { 315, 315, 295, 260, 225, 175, 240, 210, 210, 210, 210, 210, 210, 210, 210, 210 },
            { 320, 320, 310, 270, 230, 180, 240, 220, 220, 220, 220, 220, 220, 220, 220, 220 },
            { 330, 330, 320, 280, 245, 190, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230 },
            { 330, 330, 330, 290, 250, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230 },
            { 330, 330, 330, 295, 255, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230 },
            { 330, 330, 330, 300, 255, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230 },
            { 330, 330, 330, 300, 260, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230 },
            { 325, 325, 325, 305, 260, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230 },
            { 320, 320, 320, 305, 260, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230 },
            { 315, 315, 315, 305, 260, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230 },
            { 310, 310, 310, 300, 260, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230 },
            { 305, 305, 305, 290, 255, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230 },
            { 295, 295, 295, 284, 250, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230 },
            { 288, 288, 288, 270, 240, 230, 230, 210, 210, 210, 210, 210, 210, 210, 210, 210 },
            { 280, 280, 280, 265, 235, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200 },
            { 275, 275, 275, 255, 230, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200 },
            { 270, 270, 270, 245, 220, 220, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200 },
            { 265, 265, 265, 240, 210, 210, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200 },
            { 260, 260, 260, 230, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200 },
            { 250, 250, 250, 220, 192, 192, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200 },
            { 240, 240, 240, 205, 180, 180, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200 },
            { 230, 230, 230, 190, 170, 170, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200 },
            { 215, 215, 215, 170, 155, 155, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200 },
            { 180, 180, 180, 150, 145, 145, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200 },
            { 130, 130, 130, 130, 130, 130, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200 }
        },
        /* au16EdgeStr */
        /* ISO */
        /* 100, 200, 400, 800, 1600, 3200, 6400, 12800, 25600, 51200, 102400, 204800, 409600, 819200, 1638400, 3276800
         */
        {
            { 195, 195, 195, 195, 195, 195, 400, 440, 500, 475, 475, 475, 475, 475, 475, 475 },
            { 200, 200, 200, 200, 200, 200, 400, 440, 500, 485, 485, 485, 485, 485, 485, 485 },
            { 220, 220, 220, 220, 220, 220, 400, 440, 500, 495, 495, 495, 495, 495, 495, 495 },
            { 230, 230, 230, 230, 230, 230, 400, 440, 500, 500, 500, 500, 500, 500, 500, 500 },
            { 240, 240, 240, 240, 240, 240, 400, 440, 500, 510, 510, 510, 510, 510, 510, 510 },
            { 250, 250, 250, 250, 250, 250, 400, 440, 500, 520, 520, 520, 520, 520, 520, 520 },
            { 260, 260, 260, 260, 260, 260, 420, 460, 540, 530, 530, 530, 530, 530, 530, 530 },
            { 270, 270, 270, 270, 270, 270, 420, 460, 540, 540, 540, 540, 540, 540, 540, 540 },
            { 280, 280, 280, 280, 280, 280, 420, 460, 540, 545, 545, 545, 545, 545, 545, 545 },
            { 280, 280, 280, 280, 280, 280, 420, 460, 540, 550, 550, 550, 550, 550, 550, 550 },
            { 285, 285, 285, 285, 285, 285, 420, 460, 540, 560, 560, 560, 560, 560, 560, 560 },
            { 290, 290, 290, 290, 290, 290, 420, 460, 540, 565, 565, 565, 565, 565, 565, 565 },
            { 290, 290, 290, 290, 290, 290, 420, 460, 540, 570, 570, 570, 570, 570, 570, 570 },
            { 295, 295, 295, 295, 295, 295, 430, 470, 550, 575, 575, 575, 575, 575, 575, 575 },
            { 295, 295, 295, 295, 295, 295, 430, 470, 550, 580, 580, 580, 580, 580, 580, 580 },
            { 295, 295, 295, 295, 295, 295, 440, 470, 550, 575, 575, 575, 575, 575, 575, 575 },
            { 295, 295, 295, 295, 295, 295, 440, 470, 550, 570, 570, 570, 570, 570, 570, 570 },
            { 295, 295, 295, 295, 295, 295, 450, 480, 580, 565, 565, 565, 565, 565, 565, 565 },
            { 295, 295, 295, 295, 295, 295, 460, 500, 580, 560, 560, 560, 560, 560, 560, 560 },
            { 290, 290, 290, 290, 290, 290, 460, 500, 580, 555, 555, 555, 555, 555, 555, 555 },
            { 285, 285, 285, 285, 285, 285, 460, 500, 580, 550, 550, 550, 550, 550, 550, 550 },
            { 280, 280, 280, 280, 280, 280, 460, 500, 580, 540, 540, 540, 540, 540, 540, 540 },
            { 275, 275, 275, 275, 275, 275, 460, 500, 580, 535, 535, 535, 535, 535, 535, 535 },
            { 265, 265, 265, 265, 265, 265, 460, 500, 580, 530, 530, 530, 530, 530, 530, 530 },
            { 250, 250, 250, 250, 250, 250, 460, 500, 580, 520, 520, 520, 520, 520, 520, 520 },
            { 240, 240, 240, 240, 240, 240, 470, 500, 580, 515, 515, 515, 515, 515, 515, 515 },
            { 220, 220, 220, 220, 220, 220, 470, 500, 580, 510, 510, 510, 510, 510, 510, 510 },
            { 200, 200, 200, 200, 200, 200, 470, 500, 580, 500, 500, 500, 500, 500, 500, 500 },
            { 180, 180, 180, 180, 180, 180, 480, 500, 580, 495, 495, 495, 495, 495, 495, 495 },
            { 160, 160, 160, 160, 160, 160, 480, 500, 580, 485, 485, 485, 485, 485, 485, 485 },
            { 140, 140, 140, 140, 140, 140, 480, 500, 580, 480, 480, 480, 480, 480, 480, 480 },
            { 125, 125, 125, 125, 125, 125, 480, 500, 580, 470, 470, 470, 470, 470, 470, 470 }
        },
        /* au16TextureFreq[ISP_AUTO_ISO_STRENGTH_NUM] */
        /* ISO */
        /* 100, 200, 400, 800, 1600, 3200, 6400, 12800, 25600, 51200,  102400,  204800,   409600,   819200,   1638400,
           3276800 */
        { 160, 180, 180, 180, 160, 160, 128, 128, 128, 128, 128, 100, 100, 100, 100, 100 },
        /* au16EdgeFreq[ISP_AUTO_ISO_STRENGTH_NUM] */
        { 128, 100, 100, 100, 100, 100, 100, 100, 100, 100, 96, 96, 96, 96, 96, 96 },
        /* au8OverShoot[ISP_AUTO_ISO_STRENGTH_NUM] */
        { 55, 60, 70, 76, 80, 80, 70, 60, 50, 50, 30, 10, 10, 10, 10, 10 },
        /* au8UnderShoot[ISP_AUTO_ISO_STRENGTH_NUM] */
        { 55, 65, 80, 80, 80, 80, 80, 70, 50, 30, 20, 20, 15, 15, 15, 15 },
        /* au8ShootSupStr[ISP_AUTO_ISO_STRENGTH_NUM] */
        { 8, 8, 7, 7, 7, 6, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0 },
        /* au8ShootSupAdj[ISP_AUTO_ISO_STRENGTH_NUM] */
        { 9, 9, 8, 8, 7, 7, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0 },
        /* au8DetailCtrl[ISP_AUTO_ISO_STRENGTH_NUM] */
        { 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 120, 120, 120, 120, 120, 120 },
        /* au8DetailCtrlThr[ISP_AUTO_ISO_STRENGTH_NUM] */
        { 180, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160 },
        /* au8EdgeFiltStr[ISP_AUTO_ISO_STRENGTH_NUM] */
        { 60, 58, 60, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62 },
        /* au8EdgeFiltMaxCap */
        { 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18 },
        /* au8RGain[ISP_AUTO_ISO_STRENGTH_NUM] */
        { 12, 12, 18, 24, 24, 24, 26, 28, 31, 31, 31, 31, 31, 31, 31, 31 },
        /* au8GGain[ISP_AUTO_ISO_STRENGTH_NUM] */
        { 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32 },
        /* au8BGain[ISP_AUTO_ISO_STRENGTH_NUM] */
        { 18, 20, 24, 24, 24, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22 },
        /* au8SkinGain[ISP_AUTO_ISO_STRENGTH_NUM] */
        { 30, 27, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31 },
        /* u8MaxSharpGain[ISP_AUTO_ISO_STRENGTH_NUM] */
        { 60, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40 }
    },

};

static AWB_CCM_S g_stAwbCcm = {
    3,
    {
        {
            4720, /* D50 */
            { 0x01B0, 0x80A5, 0x800B, 0x8045, 0x0180, 0x803B, 0x8002, 0x806D, 0x016F },
        },
        {
            3640, /* TL84 */
            { 0x019F, 0x8066, 0x8039, 0x805F, 0x0187, 0x8028, 0x0000, 0x808A, 0x018A },
        },
        {
            2687, /* A */
            { 0x024C, 0x8134, 0x8018, 0x804B, 0x014A, 0x0001, 0x0010, 0x80F7, 0x01E7 },
        },
        {
            2100,
            { 0x0100, 0x0000, 0x0000, 0x0000, 0x0100, 0x0000, 0x0000, 0x0000, 0x0100 },
        },
        {
            1600,
            { 0x0100, 0x0000, 0x0000, 0x0000, 0x0100, 0x0000, 0x0000, 0x0000, 0x0100 },
        },
        {
            1400,
            { 0x0100, 0x0000, 0x0000, 0x0000, 0x0100, 0x0000, 0x0000, 0x0000, 0x0100 },
        },
        {
            1000,
            { 0x0100, 0x0000, 0x0000, 0x0000, 0x0100, 0x0000, 0x0000, 0x0000, 0x0100 },
        },
    },
};

static AWB_CCM_S g_stAwbCcmFsWdr = {
    3,
    {
        {
            4720, /* D50 */
            { 0x01B0, 0x80A5, 0x800B, 0x8045, 0x0180, 0x803B, 0x8002, 0x806D, 0x016F },
        },
        {
            3640, /* TL84 */
            { 0x019F, 0x8066, 0x8039, 0x805F, 0x0187, 0x8028, 0x0000, 0x808A, 0x018A },
        },
        {
            2687, /* A */
            { 0x024C, 0x8134, 0x8018, 0x804B, 0x014A, 0x0001, 0x0010, 0x80F7, 0x01E7 },
        },
        {
            2100,
            { 0x0100, 0x0000, 0x0000, 0x0000, 0x0100, 0x0000, 0x0000, 0x0000, 0x0100 },
        },
        {
            1600,
            { 0x0100, 0x0000, 0x0000, 0x0000, 0x0100, 0x0000, 0x0000, 0x0000, 0x0100 },
        },
        {
            1400,
            { 0x0100, 0x0000, 0x0000, 0x0000, 0x0100, 0x0000, 0x0000, 0x0000, 0x0100 },
        },
        {
            1000,
            { 0x0100, 0x0000, 0x0000, 0x0000, 0x0100, 0x0000, 0x0000, 0x0000, 0x0100 },
        },
    },
};

static AWB_AGC_TABLE_S g_stAwbAgcTable = {
    /* bvalid */
    1,

    /* 1,  2,  4,  8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768 */
    /* saturation */
    { 0x80, 0x7C, 0x76, 0x6E, 0x6E, 0x6C, 0x66, 0x50, 0x48, 0x40, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38 }
};

static AWB_AGC_TABLE_S g_stAwbAgcTableFSWDR = {
    /* bvalid */
    1,

    /* saturation */
    { 0x73, 0x6E, 0x6C, 0x64, 0x5E, 0x58, 0x50, 0x48, 0x40, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38 }
};

static const ISP_CMOS_WDR_S g_stIspWDR = {
    /* bFusionMode */
    0,

    /* bMotionComp */
    1,

    /* u16ShortThr */
    4032,

    /* u16LongThr */
    3008,

    /* bForceLong */
    1,

    /* u16ForceLongLowThr */
    500,

    /* u16ForceLongHigThr */
    700,

    /* bShortExpoChk */
    0,

    /* u8ShortCheckThd */
    0x8,

    /* bMDRefFlicker */
    1,

    /* au8MdThrLowGain[16] */
    { 45, 45, 45, 45, 45, 45, 64, 96, 128, 255, 255, 255, 255, 255, 255, 255 },

    /* au8MdThrHigGain[16] */
    { 45, 45, 45, 45, 45, 45, 64, 128, 128, 255, 255, 255, 255, 255, 255, 255 },

    /* enBnrMode */
    1,

    /* au16FusionThr[2] */
    { 3855, 3000 },

    /* u8MdtStillThd */
    0x14,

    /* u8MdtLongBlend */
    0x0
};

static const ISP_CMOS_DEHAZE_S g_stIspDehaze = {
    /* bEnable */
    0,
    /* bUserLutEnable */
    0,
    /* enOpType */
    0,
    /* u8AutoStrength */
    128,
    /* u8ManualStrength */
    128

};

static const ISP_CMOS_DEHAZE_S g_stIspDehazeWDR = {
    /* bEnable */
    1,
    /* bUserLutEnable */
    1,
    /* enOpType */
    0,
    /* u8AutoStrength */
    100,
    /* u8ManualStrength */
    128
};

static const ISP_CMOS_DRC_S g_stIspDRC = {
    /* bEnable */
    0,
    /* enOpType */
    0,
    /* u16ManualStrength */
    512,
    /* u16AutoStrength */
    512,
    /* u8SpatialFltCoef */
    2,
    /* u8RangeFltCoef */
    2,
    /* u8ContrastControl */
    8,
    /* s8DetailAdjustFactor */
    0,
    /* u8RangeAdaMax */
    8,
    /* u8FltScaleFine */
    6,
    /* u8FltScaleCoarse */
    6,
    /* u8GradRevMax */
    64,
    /* u8GradRevThr */
    50,
    /* u8BrightGainLmt */
    15,
    /* u8BrightGainLmtStep */
    10,
    /* u8DarkGainLmtY */
    0,
    /* u8DarkGainLmtC */
    0,
    /* u8PDStrength */
    35,
    /* u8LocalMixingBrightMax */
    64,
    /* u8LocalMixingBrightMin */
    32,
    /* u8LocalMixingBrightThr */
    96,
    /* s8LocalMixingBrightSlo */
    -3,
    /* u8LocalMixingDarkMax */
    64,
    /* u8LocalMixingDarkMin */
    32,
    /* u8LocalMixingDarkThr */
    200,
    /* s8LocalMixingDarkSlo */
    5,
    /* ColorCorrectionLut[33] */
    {
        1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024,
        1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024
    },
    /* ToneMappingValue[200] */
    {
        8,     8,     16,    24,    31,    39,    48,    56,    65,    75,    85,    95,    106,   118,   130,   143,
        156,   170,   185,   201,   218,   235,   254,   274,   294,   316,   339,   364,   390,   417,   446,   477,
        509,   543,   579,   617,   658,   701,   746,   794,   844,   898,   955,   1015,  1078,  1145,  1216,  1291,
        1370,  1454,  1543,  1637,  1736,  1841,  1952,  2069,  2194,  2325,  2465,  2612,  2767,  2932,  3106,  3290,
        3485,  3691,  3909,  4140,  4384,  4641,  4914,  5202,  5507,  5830,  6171,  6531,  6913,  7316,  7742,  8193,
        8669,  9173,  9705,  10268, 10863, 11492, 12145, 12808, 13483, 14171, 14872, 15587, 16319, 17069, 17840, 18635,
        19458, 19881, 20313, 20754, 21204, 21661, 22122, 22586, 23053, 23525, 24000, 24480, 24965, 25455, 25950, 26451,
        26959, 27473, 27995, 28524, 29062, 29609, 30165, 30732, 31309, 31899, 32501, 33116, 33746, 34391, 35043, 35706,
        36381, 37066, 37763, 38472, 39192, 39925, 40671, 41429, 42201, 42591, 42986, 43383, 43784, 44189, 44597, 45008,
        45424, 45842, 46265, 46691, 47121, 47555, 47993, 48434, 48880, 49329, 49783, 50241, 50703, 51169, 51639, 52113,
        52592, 53075, 53564, 54056, 54552, 55054, 55560, 56071, 56586, 56846, 57107, 57369, 57632, 57896, 58162, 58429,
        58697, 58967, 59238, 59510, 59783, 60057, 60333, 60611, 60889, 61169, 61451, 61733, 62017, 62303, 62589, 62877,
        63167, 63458, 63750, 64044, 64340, 64636, 64934, 65234
    },
    /* u8Asymmetry */
    2,
    /* u8SecondPole */
    180,
    /* u8Stretch */
    54,
    /* u8Compress */
    180,
    /* u8CurveSel */
    0,
    /* au16Xpoint */
    { 0, 200, 400, 600, 1000 },
    /* au16Ypoint */
    { 0, 200, 400, 600, 1000 },
    /* au16Slope */
    { 1000, 1000, 1000, 1000, 1000 }
};

static const ISP_CMOS_DRC_S g_stIspDRCWDR = {
    /* bEnable */
    1,
    /* enOpType */
    0,
    /* u16ManualStrength */
    1023,
    /* u16AutoStrength */
    512,
    /* u8SpatialFltCoef */
    0,
    /* u8RangeFltCoef */
    1,
    /* u8ContrastControl */
    9,
    /* s8DetailAdjustFactor */
    12,
    /* u8RangeAdaMax */
    4,
    /* u8FltScaleFine */
    3,
    /* u8FltScaleCoarse */
    3,
    /* u8GradRevMax */
    30,
    /* u8GradRevThr */
    35,
    /* u8BrightGainLmt */
    15,
    /* u8BrightGainLmtStep */
    10,
    /* u8DarkGainLmtY */
    0,
    /* u8DarkGainLmtC */
    0,
    /* u8PDStrength */
    35,
    /* u8LocalMixingBrightMax */
    32,
    /* u8LocalMixingBrightMin */
    24,
    /* u8LocalMixingBrightThr */
    96,
    /* s8LocalMixingBrightSlo */
    -3,
    /* u8LocalMixingDarkMax */
    36,
    /* u8LocalMixingDarkMin */
    28,
    /* u8LocalMixingDarkThr */
    200,
    /* s8LocalMixingDarkSlo */
    5,
    /* ColorCorrectionLut[33] */
    {
        1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 772, 768, 764,
        760,  756,  752,  748,  744,  740,  736,  732,  728,  724,  720,  716,  712,  708,  704, 700
    },
    /* ToneMappingValue[200] */
    {
        8,     8,     16,    24,    31,    39,    48,    56,    65,    75,    85,    95,    106,   118,   130,   143,
        156,   170,   185,   201,   218,   235,   254,   274,   294,   316,   339,   364,   390,   417,   446,   477,
        509,   543,   579,   617,   658,   701,   746,   794,   844,   898,   955,   1015,  1078,  1145,  1216,  1291,
        1370,  1454,  1543,  1637,  1736,  1841,  1952,  2069,  2194,  2325,  2465,  2612,  2767,  2932,  3106,  3290,
        3485,  3691,  3909,  4140,  4384,  4641,  4914,  5202,  5507,  5830,  6171,  6531,  6913,  7316,  7742,  8193,
        8669,  9173,  9705,  10268, 10863, 11492, 12145, 12808, 13483, 14171, 14872, 15587, 16319, 17069, 17840, 18635,
        19458, 19881, 20313, 20754, 21204, 21661, 22122, 22586, 23053, 23525, 24000, 24480, 24965, 25455, 25950, 26451,
        26959, 27473, 27995, 28524, 29062, 29609, 30165, 30732, 31309, 31899, 32501, 33116, 33746, 34391, 35043, 35706,
        36381, 37066, 37763, 38472, 39192, 39925, 40671, 41429, 42201, 42591, 42986, 43383, 43784, 44189, 44597, 45008,
        45424, 45842, 46265, 46691, 47121, 47555, 47993, 48434, 48880, 49329, 49783, 50241, 50703, 51169, 51639, 52113,
        52592, 53075, 53564, 54056, 54552, 55054, 55560, 56071, 56586, 56846, 57107, 57369, 57632, 57896, 58162, 58429,
        58697, 58967, 59238, 59510, 59783, 60057, 60333, 60611, 60889, 61169, 61451, 61733, 62017, 62303, 62589, 62877,
        63167, 63458, 63750, 64044, 64340, 64636, 64934, 65234
    },
    /* u8Asymmetry */
    5,
    /* u8SecondPole */
    180,
    /* u8Stretch */
    50,
    /* u8Compress */
    150,
    /* u8CurveSel */
    0,
    /* au16Xpoint */
    { 0, 200, 400, 600, 1000 },
    /* au16Ypoint */
    { 0, 200, 400, 600, 1000 },
    /* au16Slope */
    { 1000, 1000, 1000, 1000, 1000 }
};

#ifdef CONFIG_HI_ISP_CA_SUPPORT
static const ISP_CMOS_CA_S g_stIspCA = {
    /* CA */
    1,
    /* Y */
    {
        36,   81,   111,  136,  158,  182,  207,  228,  259,  290,  317,  345,  369,  396, 420, 444, 468,  492,  515,
        534,  556,  574,  597,  614,  632,  648,  666,  681,  697,  709,  723,  734,  748, 758, 771, 780,  788,  800,
        808,  815,  822,  829,  837,  841,  848,  854,  858,  864,  868,  871,  878,  881, 885, 890, 893,  897,  900,
        903,  906,  909,  912,  915,  918,  921,  924,  926,  929,  931,  934,  936,  938, 941, 943, 945,  947,  949,
        951,  952,  954,  956,  958,  961,  962,  964,  966,  968,  969,  970,  971,  973, 974, 976, 977,  979,  980,
        981,  983,  984,  985,  986,  988,  989,  990,  991,  992,  993,  995,  996,  997, 998, 999, 1000, 1001, 1004,
        1005, 1006, 1007, 1009, 1010, 1011, 1012, 1014, 1016, 1017, 1019, 1020, 1022, 1024
    },
    /* ISO */
    { 1300, 1300, 1250, 1200, 1150, 1100, 1050, 1000, 950, 900, 900, 800, 800, 800, 800, 800 }
};
#endif

static const ISP_CMOS_LSC_S g_stCmosLsc = {
    /* MeshStrength */
    4096,
    /* MeshScale */
    5,
    /* ISP_LSC_CABLI_TABLE_S */
    {
        {
            {
                702, 617, 542, 475, 423, 372, 332, 300, 268, 242, 221, 201, 188, 176, 167, 163, 162, 164, 169, 179, 191, 206,
                227, 254, 284, 317, 361, 403, 458, 519, 589, 676, 764, 677, 595, 521, 460, 405, 357, 318, 282, 254, 228, 205,
                185, 172, 161, 153, 147, 146, 149, 154, 162, 176, 190, 212, 237, 264, 300, 340, 383, 437, 497, 565, 651, 732,
                647, 570, 499, 436, 384, 340, 297, 264, 233, 209, 188, 168, 154, 143, 135, 129, 129, 130, 137, 147, 156, 175,
                193, 216, 245, 279, 319, 360, 410, 470, 539, 616, 702, 617, 547, 475, 416, 364, 318, 278, 246, 215, 193, 170,
                151, 138, 128, 118, 113, 111, 115, 120, 130, 141, 158, 177, 199, 228, 258, 297, 339, 388, 449, 514, 591, 675,
                590, 525, 456, 397, 347, 302, 262, 231, 201, 176, 154, 135, 121, 110, 102, 99,  97,  98,  105, 115, 127, 142,
                162, 184, 211, 243, 280, 321, 369, 425, 492, 565, 647, 575, 504, 439, 377, 330, 287, 248, 214, 185, 161, 140,
                122, 108, 94,  88,  84,  82,  83,  92,  99,  114, 129, 148, 169, 197, 227, 263, 305, 354, 405, 474, 547, 619,
                552, 487, 436, 365, 314, 276, 236, 202, 174, 148, 126, 108, 93,  83,  73,  70,  69,  71,  77,  86,  99,  115,
                135, 157, 184, 214, 251, 290, 338, 392, 454, 529, 601, 533, 471, 407, 349, 302, 262, 225, 188, 162, 136, 115,
                97,  82,  71,  62,  58,  56,  59,  65,  75,  88,  104, 122, 146, 172, 202, 236, 278, 324, 376, 440, 512, 582,
                522, 454, 392, 341, 290, 248, 212, 177, 152, 128, 104, 88,  71,  60,  51,  46,  44,  48,  54,  63,  78,  93,
                111, 135, 161, 191, 226, 265, 311, 365, 425, 496, 565, 509, 444, 383, 329, 286, 242, 204, 170, 141, 118, 96,
                78,  61,  51,  39,  36,  33,  37,  44,  53,  67,  83,  103, 125, 151, 184, 218, 255, 300, 352, 411, 482, 555,
                500, 436, 374, 321, 275, 233, 195, 162, 133, 109, 88,  70,  54,  41,  32,  25,  24,  26,  33,  44,  58,  77,
                94,  119, 144, 174, 208, 246, 291, 340, 401, 467, 536, 491, 428, 366, 312, 266, 226, 189, 157, 128, 104, 81,
                62,  46,  33,  23,  15,  15,  18,  25,  36,  50,  68,  89,  111, 137, 167, 204, 239, 284, 337, 389, 458, 534,
                482, 422, 362, 308, 264, 221, 184, 152, 123, 98,  75,  57,  40,  26,  15,  9,   7,   11,  19,  28,  43,  66,
                83,  106, 133, 162, 196, 234, 278, 330, 382, 452, 516, 480, 415, 357, 302, 259, 217, 180, 147, 118, 94,  72,
                52,  35,  20,  11,  3,   2,   5,   12,  24,  40,  58,  78,  102, 128, 157, 193, 228, 274, 323, 377, 448, 509,
                477, 413, 353, 302, 256, 214, 178, 144, 116, 88,  70,  50,  32,  16,  6,   0,   2,   3,   8,   21,  36,  55,
                75,  99,  123, 155, 189, 228, 270, 319, 373, 436, 511, 474, 413, 350, 298, 253, 213, 177, 143, 115, 88,  67,
                46,  29,  14,  3,   0,   0,   2,   5,   19,  35,  54,  76,  96,  123, 153, 186, 225, 269, 318, 372, 436, 504,
                471, 412, 352, 298, 253, 213, 177, 142, 115, 89,  67,  46,  28,  15,  4,   0,   0,   2,   12,  18,  35,  52,
                76,  97,  123, 153, 188, 224, 269, 317, 373, 436, 502, 479, 416, 352, 300, 255, 214, 177, 144, 115, 91,  68,
                47,  29,  15,  4,   3,   1,   3,   8,   19,  35,  56,  76,  99,  123, 153, 188, 224, 270, 315, 372, 436, 510,
                484, 421, 356, 304, 259, 219, 182, 146, 118, 94,  71,  51,  34,  19,  8,   3,   3,   4,   10,  23,  37,  57,
                78,  102, 126, 156, 190, 226, 271, 322, 376, 440, 509, 486, 425, 362, 308, 262, 222, 183, 148, 122, 96,  74,
                54,  38,  23,  12,  7,   4,   8,   15,  25,  43,  62,  82,  105, 129, 159, 193, 230, 273, 325, 378, 445, 513,
                494, 428, 372, 314, 270, 226, 189, 155, 126, 99,  78,  58,  42,  29,  19,  12,  10,  14,  22,  33,  48,  67,
                88,  109, 134, 162, 197, 236, 279, 330, 384, 454, 515, 500, 439, 376, 322, 275, 232, 195, 161, 131, 106, 86,
                65,  48,  36,  26,  21,  19,  21,  29,  41,  56,  73,  93,  115, 139, 169, 204, 242, 286, 331, 396, 458, 528,
                511, 447, 385, 330, 283, 242, 203, 168, 138, 113, 92,  73,  58,  45,  35,  29,  28,  31,  37,  49,  62,  82,
                99,  122, 147, 178, 209, 250, 296, 343, 404, 468, 536, 523, 458, 397, 341, 293, 251, 211, 178, 148, 122, 100,
                82,  66,  53,  46,  39,  38,  40,  47,  57,  73,  89,  108, 131, 156, 186, 221, 259, 305, 356, 415, 484, 552,
                538, 477, 411, 356, 303, 258, 222, 189, 158, 130, 110, 92,  76,  65,  56,  50,  48,  52,  58,  68,  82,  99,
                118, 141, 165, 195, 230, 270, 317, 372, 427, 496, 560, 557, 493, 425, 367, 320, 271, 231, 201, 168, 142, 122,
                104, 89,  76,  68,  63,  62,  64,  70,  80,  92,  110, 128, 152, 177, 208, 245, 283, 328, 384, 445, 513, 580,
                573, 509, 442, 385, 332, 287, 247, 213, 180, 154, 133, 115, 99,  88,  82,  77,  72,  77,  82,  92,  105, 121,
                139, 162, 190, 221, 258, 297, 342, 399, 461, 529, 595, 594, 526, 465, 399, 347, 300, 261, 226, 195, 169, 146,
                128, 115, 104, 93,  90,  88,  91,  97,  105, 120, 135, 154, 177, 206, 236, 272, 312, 359, 412, 478, 548, 620,
                624, 548, 479, 417, 364, 318, 275, 242, 210, 182, 161, 143, 128, 119, 110, 105, 104, 104, 111, 120, 135, 148,
                170, 191, 221, 251, 289, 328, 376, 435, 496, 564, 646, 646, 565, 495, 437, 380, 338, 293, 258, 227, 199, 177,
                159, 145, 134, 125, 121, 119, 121, 126, 136, 149, 166, 186, 209, 237, 270, 309, 349, 399, 452, 515, 594, 668,
                672, 593, 515, 454, 399, 353, 313, 274, 243, 215, 192, 176, 162, 149, 143, 138, 135, 138, 146, 153, 166, 183,
                205, 229, 258, 291, 330, 368, 419, 476, 544, 617, 703, 708, 617, 544, 473, 417, 373, 331, 294, 261, 235, 212,
                195, 182, 169, 161, 158, 156, 158, 163, 173, 186, 204, 226, 247, 275, 312, 351, 390, 441, 500, 571, 658, 732,
                723, 643, 563, 495, 440, 389, 347, 310, 276, 250, 228, 207, 194, 185, 179, 173, 174, 172, 179, 187, 203, 218,
                238, 263, 295, 330, 368, 412, 462, 521, 593, 687, 759
            },
            {
                654, 583, 510, 449, 397, 353, 315, 282, 252, 227, 206, 189, 176, 166, 160, 154, 153, 154, 161, 170, 179, 194,
                214, 236, 262, 296, 333, 374, 424, 483, 542, 626, 702, 632, 561, 489, 430, 380, 337, 298, 267, 237, 213, 193,
                175, 163, 152, 145, 140, 140, 140, 145, 153, 166, 180, 198, 221, 245, 278, 315, 354, 404, 460, 521, 598, 672,
                599, 532, 472, 411, 360, 313, 279, 249, 222, 197, 177, 158, 147, 136, 127, 122, 121, 122, 129, 138, 148, 162,
                182, 203, 228, 259, 296, 335, 381, 437, 498, 571, 645, 581, 511, 448, 391, 342, 298, 264, 234, 204, 181, 161,
                143, 132, 119, 113, 108, 106, 109, 113, 122, 133, 148, 168, 186, 214, 243, 277, 315, 362, 417, 475, 543, 615,
                557, 494, 429, 372, 327, 285, 247, 218, 192, 167, 147, 130, 117, 105, 96,  93,  92,  94,  100, 108, 119, 135,
                154, 174, 197, 228, 262, 298, 344, 393, 454, 524, 596, 536, 474, 416, 358, 312, 272, 234, 204, 175, 152, 132,
                117, 103, 91,  85,  79,  78,  80,  86,  95,  107, 121, 141, 160, 184, 214, 247, 284, 327, 379, 437, 508, 570,
                517, 460, 409, 344, 296, 257, 221, 191, 166, 142, 122, 103, 90,  79,  70,  67,  65,  66,  73,  83,  93,  109,
                127, 148, 171, 198, 234, 268, 313, 361, 420, 487, 555, 503, 443, 380, 329, 285, 246, 210, 180, 153, 130, 109,
                93,  79,  66,  60,  56,  53,  55,  62,  71,  82,  98,  114, 136, 161, 190, 221, 257, 300, 347, 409, 472, 536,
                491, 430, 371, 320, 275, 237, 202, 169, 143, 121, 99,  83,  67,  56,  48,  43,  42,  46,  52,  60,  73,  87,
                105, 127, 151, 179, 210, 246, 291, 336, 391, 457, 521, 480, 419, 361, 311, 266, 228, 192, 162, 133, 112, 92,
                75,  59,  48,  38,  33,  31,  35,  41,  51,  64,  79,  97,  119, 141, 170, 203, 238, 279, 327, 380, 444, 509,
                470, 411, 353, 303, 260, 220, 185, 155, 127, 104, 85,  66,  51,  39,  29,  23,  21,  25,  31,  41,  55,  71,
                89,  112, 135, 163, 195, 230, 271, 318, 371, 432, 495, 460, 401, 345, 297, 254, 214, 178, 148, 121, 99,  78,
                59,  43,  31,  20,  15,  13,  16,  24,  33,  48,  64,  83,  104, 128, 158, 189, 225, 262, 308, 361, 423, 487,
                455, 397, 337, 292, 247, 207, 175, 143, 116, 92,  72,  54,  38,  24,  14,  8,   6,   9,   16,  27,  42,  61,
                79,  100, 125, 153, 184, 220, 260, 303, 354, 418, 482, 450, 389, 335, 286, 245, 205, 169, 140, 113, 89,  67,
                49,  32,  19,  9,   3,   1,   4,   11,  23,  38,  56,  75,  96,  121, 150, 179, 214, 253, 301, 351, 411, 471,
                448, 389, 329, 283, 241, 202, 168, 138, 110, 86,  66,  46,  29,  14,  4,   0,   0,   1,   6,   18,  35,  52,
                71,  93,  117, 145, 176, 213, 249, 296, 345, 407, 468, 447, 389, 331, 281, 239, 200, 167, 136, 108, 85,  63,
                45,  27,  13,  3,   0,   0,   2,   5,   16,  32,  51,  69,  91,  114, 143, 175, 210, 250, 292, 344, 401, 461,
                447, 391, 330, 282, 239, 203, 168, 136, 108, 85,  62,  44,  26,  13,  2,   0,   1,   0,   10,  17,  31,  50,
                69,  91,  114, 142, 174, 207, 247, 292, 343, 401, 462, 450, 391, 332, 283, 242, 203, 168, 136, 110, 86,  65,
                45,  29,  14,  4,   1,   2,   2,   6,   17,  32,  52,  71,  93,  116, 143, 175, 210, 249, 296, 343, 402, 461,
                453, 394, 338, 287, 245, 206, 170, 141, 112, 88,  67,  48,  30,  17,  6,   1,   2,   3,   9,   21,  36,  54,
                74,  95,  118, 146, 175, 211, 252, 295, 346, 406, 468, 456, 399, 340, 292, 247, 210, 175, 143, 116, 91,  70,
                52,  34,  20,  12,  4,   3,   6,   13,  25,  40,  58,  78,  96,  122, 147, 180, 216, 252, 300, 351, 411, 472,
                463, 404, 346, 296, 255, 214, 177, 147, 118, 96,  75,  56,  40,  27,  17,  11,  8,   12,  18,  30,  45,  64,
                82,  103, 125, 152, 183, 220, 258, 303, 355, 418, 477, 471, 411, 353, 304, 260, 222, 186, 152, 126, 101, 81,
                62,  48,  34,  25,  18,  16,  19,  26,  38,  53,  70,  88,  108, 131, 158, 188, 226, 265, 311, 363, 423, 487,
                479, 421, 362, 313, 267, 227, 193, 160, 132, 107, 87,  70,  55,  42,  34,  26,  26,  28,  35,  46,  60,  76,
                95,  116, 137, 167, 196, 231, 273, 319, 375, 433, 496, 493, 432, 375, 321, 276, 236, 201, 169, 140, 115, 96,
                79,  63,  51,  43,  37,  36,  37,  44,  55,  68,  85,  103, 122, 145, 174, 208, 242, 283, 331, 384, 446, 507,
                505, 447, 386, 333, 286, 245, 210, 179, 149, 125, 104, 87,  73,  63,  53,  47,  46,  47,  55,  65,  79,  93,
                112, 131, 155, 182, 216, 252, 295, 342, 399, 460, 517, 520, 462, 402, 348, 301, 258, 222, 189, 160, 135, 114,
                98,  83,  71,  65,  60,  58,  61,  65,  75,  87,  103, 120, 142, 166, 195, 227, 263, 306, 354, 413, 474, 537,
                543, 477, 418, 363, 314, 269, 235, 200, 172, 147, 127, 110, 95,  85,  76,  71,  69,  73,  77,  87,  100, 113,
                131, 154, 176, 207, 241, 274, 318, 370, 428, 487, 554, 557, 497, 437, 380, 328, 284, 247, 214, 185, 161, 139,
                122, 109, 97,  90,  84,  83,  86,  91,  99,  113, 127, 145, 168, 191, 220, 254, 290, 331, 383, 441, 508, 574,
                581, 515, 451, 396, 345, 302, 261, 228, 199, 175, 153, 136, 122, 110, 104, 100, 99,  100, 104, 114, 128, 141,
                158, 179, 207, 237, 268, 307, 351, 399, 460, 525, 598, 607, 533, 465, 411, 361, 316, 278, 242, 214, 188, 168,
                148, 136, 127, 119, 116, 113, 115, 121, 129, 141, 156, 175, 198, 222, 254, 288, 323, 370, 420, 480, 550, 615,
                628, 557, 488, 427, 378, 334, 295, 260, 230, 204, 183, 168, 155, 144, 137, 133, 129, 132, 137, 146, 158, 174,
                192, 215, 241, 273, 307, 346, 390, 441, 500, 573, 646, 658, 578, 508, 449, 398, 351, 311, 276, 247, 223, 202,
                184, 172, 163, 155, 150, 149, 149, 158, 165, 178, 192, 212, 232, 260, 294, 331, 367, 413, 471, 528, 610, 679,
                676, 603, 528, 467, 415, 367, 329, 295, 263, 237, 218, 200, 183, 177, 169, 165, 162, 165, 168, 178, 191, 207,
                226, 250, 276, 310, 345, 388, 432, 485, 548, 639, 708
            },
            {
                662, 586, 512, 452, 400, 356, 318, 283, 256, 232, 209, 191, 177, 168, 161, 155, 155, 157, 161, 168, 182, 196,
                215, 236, 267, 300, 336, 378, 429, 487, 546, 632, 714, 641, 561, 494, 434, 383, 339, 301, 267, 240, 215, 194,
                176, 163, 153, 145, 141, 139, 141, 146, 154, 168, 182, 200, 223, 249, 282, 318, 362, 411, 465, 529, 604, 682,
                610, 540, 474, 414, 363, 321, 282, 251, 223, 200, 177, 160, 147, 137, 128, 123, 123, 124, 130, 139, 151, 164,
                182, 205, 231, 262, 298, 338, 384, 438, 505, 576, 654, 585, 515, 453, 393, 346, 304, 266, 237, 205, 182, 162,
                145, 130, 120, 113, 108, 107, 110, 115, 123, 135, 150, 168, 188, 215, 246, 281, 320, 365, 421, 482, 552, 629,
                563, 497, 433, 376, 330, 288, 250, 220, 193, 168, 148, 132, 116, 106, 98,  94,  92,  94,  101, 109, 120, 138,
                154, 175, 199, 230, 264, 301, 347, 402, 462, 530, 601, 544, 478, 420, 362, 314, 272, 236, 205, 178, 155, 134,
                116, 105, 93,  84,  80,  79,  81,  87,  96,  108, 122, 140, 163, 187, 214, 250, 289, 333, 383, 443, 512, 574,
                525, 464, 413, 347, 301, 260, 224, 192, 166, 143, 120, 105, 90,  79,  72,  68,  67,  68,  74,  84,  96,  110,
                128, 149, 173, 203, 235, 271, 317, 368, 424, 494, 562, 509, 447, 389, 335, 290, 247, 214, 182, 156, 131, 111,
                94,  79,  68,  60,  56,  53,  56,  62,  71,  84,  100, 117, 139, 162, 189, 224, 262, 303, 354, 412, 478, 543,
                494, 435, 373, 323, 277, 239, 205, 171, 145, 122, 101, 84,  69,  58,  49,  44,  43,  45,  51,  60,  75,  90,
                106, 129, 151, 182, 212, 250, 291, 340, 397, 464, 530, 482, 423, 364, 314, 269, 229, 193, 163, 135, 111, 93,
                75,  60,  47,  39,  33,  31,  35,  41,  50,  65,  80,  97,  120, 144, 173, 205, 241, 282, 329, 384, 453, 518,
                472, 414, 356, 307, 263, 223, 187, 155, 127, 106, 85,  67,  53,  39,  30,  24,  21,  26,  32,  41,  56,  72,
                90,  112, 136, 166, 198, 234, 272, 321, 373, 440, 503, 465, 404, 351, 298, 256, 216, 180, 149, 122, 97,  78,
                61,  44,  30,  21,  14,  13,  17,  24,  35,  49,  65,  85,  106, 131, 159, 192, 226, 267, 314, 365, 429, 493,
                459, 400, 343, 297, 249, 211, 175, 144, 118, 93,  73,  54,  39,  25,  14,  8,   6,   9,   17,  28,  43,  63,
                79,  101, 126, 154, 185, 222, 261, 308, 360, 421, 484, 454, 394, 340, 290, 247, 209, 173, 139, 114, 90,  68,
                49,  34,  19,  9,   1,   1,   4,   10,  23,  38,  56,  76,  98,  121, 150, 182, 216, 257, 304, 352, 413, 476,
                454, 393, 336, 287, 244, 205, 169, 138, 111, 87,  65,  47,  31,  14,  5,   0,   1,   2,   7,   18,  35,  52,
                72,  93,  118, 147, 177, 213, 254, 300, 349, 409, 471, 453, 392, 333, 286, 241, 205, 168, 137, 111, 84,  64,
                44,  28,  13,  3,   0,   0,   1,   5,   16,  33,  50,  71,  91,  116, 144, 176, 211, 252, 297, 350, 408, 470,
                453, 392, 337, 285, 241, 203, 168, 137, 109, 85,  63,  45,  28,  13,  2,   0,   0,   2,   11,  17,  31,  50,
                70,  92,  115, 143, 176, 211, 252, 296, 347, 404, 465, 456, 393, 335, 283, 244, 204, 168, 138, 111, 88,  65,
                46,  27,  15,  3,   2,   1,   2,   6,   18,  33,  52,  72,  93,  117, 144, 175, 212, 252, 298, 346, 408, 470,
                456, 399, 339, 289, 246, 208, 173, 141, 115, 89,  67,  49,  32,  17,  7,   2,   1,   3,   8,   20,  36,  53,
                74,  95,  119, 148, 179, 213, 254, 300, 351, 411, 472, 463, 402, 345, 297, 250, 211, 176, 144, 116, 93,  72,
                51,  35,  21,  10,  5,   4,   6,   13,  25,  41,  59,  77,  98,  121, 149, 181, 217, 256, 304, 356, 418, 476,
                468, 408, 350, 298, 256, 216, 181, 148, 120, 95,  75,  56,  41,  28,  17,  11,  9,   13,  19,  31,  46,  63,
                83,  102, 128, 154, 186, 221, 261, 306, 359, 421, 482, 472, 416, 357, 305, 258, 223, 186, 154, 126, 101, 81,
                63,  47,  35,  24,  19,  16,  20,  27,  37,  52,  69,  88,  109, 133, 160, 190, 227, 270, 314, 366, 432, 495,
                482, 423, 363, 314, 268, 229, 192, 160, 133, 107, 88,  69,  55,  43,  33,  28,  25,  30,  35,  46,  59,  76,
                95,  115, 138, 166, 197, 234, 276, 322, 377, 440, 499, 498, 435, 374, 322, 276, 236, 200, 169, 139, 117, 96,
                78,  63,  51,  42,  37,  34,  37,  45,  56,  68,  84,  102, 124, 147, 175, 206, 244, 284, 334, 389, 454, 512,
                513, 450, 390, 337, 287, 246, 210, 178, 149, 125, 105, 87,  73,  60,  53,  48,  46,  48,  55,  64,  77,  93,
                110, 131, 155, 184, 218, 252, 296, 345, 402, 465, 520, 526, 464, 404, 349, 302, 257, 221, 189, 160, 135, 115,
                97,  84,  72,  64,  60,  57,  59,  65,  75,  87,  103, 122, 143, 166, 194, 227, 264, 305, 358, 416, 479, 537,
                544, 481, 419, 364, 317, 272, 236, 201, 171, 147, 127, 111, 97,  84,  76,  71,  69,  72,  77,  87,  99,  114,
                133, 154, 179, 206, 241, 276, 322, 370, 430, 490, 557, 563, 499, 438, 378, 329, 284, 247, 212, 185, 158, 139,
                122, 106, 97,  88,  84,  84,  85,  90,  97,  112, 125, 145, 165, 192, 221, 254, 292, 333, 386, 443, 510, 578,
                583, 518, 452, 396, 345, 302, 261, 227, 198, 173, 153, 134, 121, 111, 103, 98,  96,  99,  104, 112, 127, 141,
                159, 182, 204, 235, 271, 310, 350, 404, 464, 531, 600, 607, 538, 470, 413, 361, 314, 276, 241, 213, 187, 165,
                150, 137, 126, 119, 114, 112, 114, 121, 127, 141, 157, 176, 195, 222, 252, 288, 325, 373, 423, 481, 552, 626,
                636, 556, 487, 427, 377, 333, 293, 257, 229, 205, 183, 165, 152, 143, 135, 131, 129, 131, 137, 146, 157, 175,
                192, 215, 240, 271, 308, 347, 393, 444, 505, 576, 651, 663, 580, 511, 451, 396, 350, 312, 277, 246, 221, 201,
                183, 171, 160, 154, 149, 148, 149, 154, 162, 175, 192, 210, 233, 259, 293, 330, 367, 414, 469, 533, 610, 683,
                681, 607, 526, 466, 412, 366, 328, 291, 261, 235, 215, 198, 184, 175, 168, 164, 160, 162, 170, 177, 190, 207,
                226, 249, 274, 310, 343, 383, 437, 487, 548, 637, 716
            },
            {
                624, 556, 487, 430, 380, 337, 303, 273, 243, 223, 201, 186, 170, 161, 157, 150, 150, 148, 157, 164, 176, 188,
                212, 231, 256, 286, 321, 361, 401, 456, 516, 592, 670, 602, 532, 470, 415, 365, 322, 290, 258, 234, 211, 192,
                170, 160, 149, 141, 138, 134, 138, 146, 151, 161, 176, 195, 216, 237, 271, 303, 342, 387, 442, 496, 566, 638,
                579, 509, 452, 394, 345, 303, 269, 241, 216, 193, 173, 154, 141, 133, 126, 123, 120, 121, 127, 136, 146, 161,
                179, 198, 222, 252, 288, 321, 363, 415, 477, 537, 610, 551, 487, 425, 376, 327, 289, 253, 227, 198, 178, 154,
                142, 127, 117, 108, 107, 105, 107, 112, 119, 128, 143, 164, 184, 206, 235, 269, 302, 344, 397, 454, 518, 589,
                532, 472, 412, 360, 315, 275, 239, 212, 184, 165, 147, 126, 112, 104, 95,  90,  89,  94,  98,  107, 118, 133,
                152, 167, 192, 218, 252, 289, 327, 373, 436, 494, 556, 512, 452, 397, 344, 299, 260, 228, 197, 173, 151, 129,
                111, 99,  88,  81,  77,  77,  78,  84,  94,  103, 118, 138, 154, 178, 205, 237, 274, 315, 361, 417, 481, 539,
                494, 436, 388, 328, 288, 250, 214, 186, 159, 139, 119, 100, 85,  75,  69,  65,  64,  64,  73,  82,  94,  107,
                123, 145, 168, 196, 228, 260, 299, 345, 401, 462, 521, 483, 419, 365, 315, 277, 237, 203, 173, 150, 125, 107,
                90,  74,  65,  58,  53,  52,  54,  60,  70,  83,  96,  111, 134, 153, 183, 214, 250, 290, 328, 388, 450, 512,
                468, 406, 350, 309, 265, 229, 196, 164, 139, 115, 98,  82,  67,  57,  48,  43,  42,  43,  48,  59,  72,  87,
                104, 123, 146, 174, 203, 237, 275, 321, 371, 434, 494, 458, 397, 342, 297, 256, 217, 187, 155, 129, 107, 87,
                72,  58,  47,  36,  32,  29,  31,  40,  49,  63,  77,  94,  114, 137, 166, 195, 230, 269, 313, 365, 425, 481,
                446, 390, 334, 292, 250, 212, 179, 150, 122, 99,  82,  64,  47,  36,  27,  21,  20,  22,  29,  41,  54,  71,
                86,  109, 132, 159, 192, 221, 257, 300, 350, 408, 464, 430, 378, 327, 281, 240, 205, 171, 140, 117, 93,  74,
                57,  42,  29,  21,  12,  12,  15,  22,  32,  46,  63,  81,  101, 124, 153, 182, 213, 252, 295, 342, 399, 464,
                430, 373, 322, 275, 236, 199, 167, 136, 111, 87,  69,  51,  36,  22,  12,  8,   7,   9,   15,  26,  41,  59,
                75,  96,  121, 149, 176, 211, 248, 289, 334, 394, 456, 427, 371, 321, 271, 234, 195, 163, 134, 107, 83,  64,
                47,  29,  16,  8,   2,   2,   2,   8,   22,  37,  54,  71,  94,  117, 143, 170, 204, 246, 288, 328, 385, 446,
                423, 368, 316, 268, 231, 194, 163, 131, 102, 81,  62,  43,  27,  13,  2,   0,   0,   1,   4,   18,  32,  50,
                70,  90,  112, 140, 168, 203, 239, 279, 327, 380, 438, 423, 370, 315, 268, 230, 193, 160, 130, 102, 81,  60,
                40,  23,  9,   1,   0,   1,   1,   5,   13,  31,  48,  64,  87,  109, 138, 168, 198, 237, 279, 324, 378, 436,
                421, 366, 313, 270, 227, 191, 157, 128, 102, 80,  59,  40,  25,  10,  1,   0,   0,   1,   9,   13,  31,  47,
                65,  86,  108, 136, 166, 199, 237, 281, 321, 375, 442, 430, 370, 316, 268, 229, 194, 158, 131, 105, 83,  59,
                42,  25,  10,  2,   1,   2,   0,   2,   15,  31,  49,  69,  87,  110, 136, 168, 199, 236, 278, 324, 376, 436,
                427, 371, 315, 273, 231, 195, 161, 132, 107, 82,  60,  43,  27,  13,  3,   1,   2,   3,   8,   17,  33,  50,
                70,  91,  109, 139, 168, 201, 237, 277, 330, 385, 442, 425, 376, 322, 273, 236, 197, 165, 134, 109, 87,  64,
                47,  31,  17,  8,   3,   3,   3,   11,  22,  38,  58,  73,  93,  115, 140, 171, 203, 239, 279, 328, 387, 450,
                430, 378, 327, 277, 239, 199, 167, 139, 114, 87,  69,  53,  37,  22,  15,  9,   8,   11,  16,  27,  42,  60,
                79,  96,  120, 147, 177, 208, 243, 284, 337, 392, 448, 438, 385, 334, 282, 246, 205, 171, 141, 116, 94,  76,
                57,  42,  31,  20,  16,  15,  18,  22,  34,  49,  66,  84,  102, 123, 152, 181, 215, 251, 293, 341, 401, 456,
                446, 396, 337, 292, 251, 214, 180, 151, 123, 98,  81,  64,  50,  38,  30,  23,  23,  24,  31,  41,  54,  72,
                89,  108, 131, 154, 186, 222, 258, 302, 350, 404, 470, 460, 403, 345, 300, 258, 220, 189, 156, 131, 107, 88,
                72,  59,  48,  38,  33,  31,  33,  40,  52,  62,  80,  98,  118, 136, 165, 196, 225, 269, 312, 361, 417, 470,
                470, 417, 363, 313, 265, 228, 196, 165, 140, 117, 96,  77,  69,  55,  48,  42,  42,  42,  50,  60,  72,  86,
                104, 123, 146, 170, 203, 236, 275, 319, 371, 429, 483, 485, 430, 371, 324, 277, 239, 204, 177, 149, 124, 108,
                89,  76,  66,  59,  54,  52,  54,  59,  69,  82,  98,  112, 134, 154, 183, 216, 247, 290, 333, 387, 444, 509,
                507, 446, 388, 337, 290, 252, 217, 187, 159, 137, 118, 99,  88,  79,  71,  64,  64,  66,  71,  79,  93,  107,
                123, 147, 168, 195, 229, 256, 296, 345, 401, 454, 521, 518, 460, 404, 348, 302, 266, 231, 199, 170, 149, 127,
                111, 98,  92,  84,  79,  75,  79,  84,  92,  106, 119, 136, 154, 181, 205, 237, 271, 312, 360, 412, 472, 530,
                542, 477, 415, 361, 319, 275, 239, 213, 184, 161, 140, 123, 112, 106, 97,  89,  91,  92,  96,  106, 119, 131,
                149, 169, 195, 218, 253, 288, 327, 371, 429, 492, 554, 561, 489, 427, 378, 331, 292, 256, 227, 196, 177, 154,
                138, 125, 119, 108, 104, 105, 107, 112, 116, 129, 147, 163, 183, 209, 236, 271, 302, 344, 392, 448, 509, 579,
                584, 516, 444, 390, 347, 307, 271, 241, 215, 188, 168, 152, 142, 134, 125, 123, 120, 121, 128, 136, 148, 163,
                182, 201, 223, 253, 290, 324, 363, 414, 460, 535, 600, 605, 535, 466, 415, 366, 322, 289, 253, 224, 205, 186,
                168, 158, 150, 142, 139, 137, 137, 147, 151, 162, 179, 196, 221, 242, 274, 309, 344, 388, 434, 487, 564, 630,
                627, 556, 481, 429, 376, 336, 303, 266, 242, 220, 198, 183, 168, 165, 156, 153, 151, 151, 159, 165, 179, 190,
                211, 233, 256, 289, 325, 361, 403, 450, 507, 589, 656
            }
        },
        {
            {
                702, 617, 542, 475, 423, 372, 332, 300, 268, 242, 221, 201, 188, 176, 167, 163, 162, 164, 169, 179, 191, 206,
                227, 254, 284, 317, 361, 403, 458, 519, 589, 676, 764, 677, 595, 521, 460, 405, 357, 318, 282, 254, 228, 205,
                185, 172, 161, 153, 147, 146, 149, 154, 162, 176, 190, 212, 237, 264, 300, 340, 383, 437, 497, 565, 651, 732,
                647, 570, 499, 436, 384, 340, 297, 264, 233, 209, 188, 168, 154, 143, 135, 129, 129, 130, 137, 147, 156, 175,
                193, 216, 245, 279, 319, 360, 410, 470, 539, 616, 702, 617, 547, 475, 416, 364, 318, 278, 246, 215, 193, 170,
                151, 138, 128, 118, 113, 111, 115, 120, 130, 141, 158, 177, 199, 228, 258, 297, 339, 388, 449, 514, 591, 675,
                590, 525, 456, 397, 347, 302, 262, 231, 201, 176, 154, 135, 121, 110, 102, 99,  97,  98,  105, 115, 127, 142,
                162, 184, 211, 243, 280, 321, 369, 425, 492, 565, 647, 575, 504, 439, 377, 330, 287, 248, 214, 185, 161, 140,
                122, 108, 94,  88,  84,  82,  83,  92,  99,  114, 129, 148, 169, 197, 227, 263, 305, 354, 405, 474, 547, 619,
                552, 487, 436, 365, 314, 276, 236, 202, 174, 148, 126, 108, 93,  83,  73,  70,  69,  71,  77,  86,  99,  115,
                135, 157, 184, 214, 251, 290, 338, 392, 454, 529, 601, 533, 471, 407, 349, 302, 262, 225, 188, 162, 136, 115,
                97,  82,  71,  62,  58,  56,  59,  65,  75,  88,  104, 122, 146, 172, 202, 236, 278, 324, 376, 440, 512, 582,
                522, 454, 392, 341, 290, 248, 212, 177, 152, 128, 104, 88,  71,  60,  51,  46,  44,  48,  54,  63,  78,  93,
                111, 135, 161, 191, 226, 265, 311, 365, 425, 496, 565, 509, 444, 383, 329, 286, 242, 204, 170, 141, 118, 96,
                78,  61,  51,  39,  36,  33,  37,  44,  53,  67,  83,  103, 125, 151, 184, 218, 255, 300, 352, 411, 482, 555,
                500, 436, 374, 321, 275, 233, 195, 162, 133, 109, 88,  70,  54,  41,  32,  25,  24,  26,  33,  44,  58,  77,
                94,  119, 144, 174, 208, 246, 291, 340, 401, 467, 536, 491, 428, 366, 312, 266, 226, 189, 157, 128, 104, 81,
                62,  46,  33,  23,  15,  15,  18,  25,  36,  50,  68,  89,  111, 137, 167, 204, 239, 284, 337, 389, 458, 534,
                482, 422, 362, 308, 264, 221, 184, 152, 123, 98,  75,  57,  40,  26,  15,  9,   7,   11,  19,  28,  43,  66,
                83,  106, 133, 162, 196, 234, 278, 330, 382, 452, 516, 480, 415, 357, 302, 259, 217, 180, 147, 118, 94,  72,
                52,  35,  20,  11,  3,   2,   5,   12,  24,  40,  58,  78,  102, 128, 157, 193, 228, 274, 323, 377, 448, 509,
                477, 413, 353, 302, 256, 214, 178, 144, 116, 88,  70,  50,  32,  16,  6,   0,   2,   3,   8,   21,  36,  55,
                75,  99,  123, 155, 189, 228, 270, 319, 373, 436, 511, 474, 413, 350, 298, 253, 213, 177, 143, 115, 88,  67,
                46,  29,  14,  3,   0,   0,   2,   5,   19,  35,  54,  76,  96,  123, 153, 186, 225, 269, 318, 372, 436, 504,
                471, 412, 352, 298, 253, 213, 177, 142, 115, 89,  67,  46,  28,  15,  4,   0,   0,   2,   12,  18,  35,  52,
                76,  97,  123, 153, 188, 224, 269, 317, 373, 436, 502, 479, 416, 352, 300, 255, 214, 177, 144, 115, 91,  68,
                47,  29,  15,  4,   3,   1,   3,   8,   19,  35,  56,  76,  99,  123, 153, 188, 224, 270, 315, 372, 436, 510,
                484, 421, 356, 304, 259, 219, 182, 146, 118, 94,  71,  51,  34,  19,  8,   3,   3,   4,   10,  23,  37,  57,
                78,  102, 126, 156, 190, 226, 271, 322, 376, 440, 509, 486, 425, 362, 308, 262, 222, 183, 148, 122, 96,  74,
                54,  38,  23,  12,  7,   4,   8,   15,  25,  43,  62,  82,  105, 129, 159, 193, 230, 273, 325, 378, 445, 513,
                494, 428, 372, 314, 270, 226, 189, 155, 126, 99,  78,  58,  42,  29,  19,  12,  10,  14,  22,  33,  48,  67,
                88,  109, 134, 162, 197, 236, 279, 330, 384, 454, 515, 500, 439, 376, 322, 275, 232, 195, 161, 131, 106, 86,
                65,  48,  36,  26,  21,  19,  21,  29,  41,  56,  73,  93,  115, 139, 169, 204, 242, 286, 331, 396, 458, 528,
                511, 447, 385, 330, 283, 242, 203, 168, 138, 113, 92,  73,  58,  45,  35,  29,  28,  31,  37,  49,  62,  82,
                99,  122, 147, 178, 209, 250, 296, 343, 404, 468, 536, 523, 458, 397, 341, 293, 251, 211, 178, 148, 122, 100,
                82,  66,  53,  46,  39,  38,  40,  47,  57,  73,  89,  108, 131, 156, 186, 221, 259, 305, 356, 415, 484, 552,
                538, 477, 411, 356, 303, 258, 222, 189, 158, 130, 110, 92,  76,  65,  56,  50,  48,  52,  58,  68,  82,  99,
                118, 141, 165, 195, 230, 270, 317, 372, 427, 496, 560, 557, 493, 425, 367, 320, 271, 231, 201, 168, 142, 122,
                104, 89,  76,  68,  63,  62,  64,  70,  80,  92,  110, 128, 152, 177, 208, 245, 283, 328, 384, 445, 513, 580,
                573, 509, 442, 385, 332, 287, 247, 213, 180, 154, 133, 115, 99,  88,  82,  77,  72,  77,  82,  92,  105, 121,
                139, 162, 190, 221, 258, 297, 342, 399, 461, 529, 595, 594, 526, 465, 399, 347, 300, 261, 226, 195, 169, 146,
                128, 115, 104, 93,  90,  88,  91,  97,  105, 120, 135, 154, 177, 206, 236, 272, 312, 359, 412, 478, 548, 620,
                624, 548, 479, 417, 364, 318, 275, 242, 210, 182, 161, 143, 128, 119, 110, 105, 104, 104, 111, 120, 135, 148,
                170, 191, 221, 251, 289, 328, 376, 435, 496, 564, 646, 646, 565, 495, 437, 380, 338, 293, 258, 227, 199, 177,
                159, 145, 134, 125, 121, 119, 121, 126, 136, 149, 166, 186, 209, 237, 270, 309, 349, 399, 452, 515, 594, 668,
                672, 593, 515, 454, 399, 353, 313, 274, 243, 215, 192, 176, 162, 149, 143, 138, 135, 138, 146, 153, 166, 183,
                205, 229, 258, 291, 330, 368, 419, 476, 544, 617, 703, 708, 617, 544, 473, 417, 373, 331, 294, 261, 235, 212,
                195, 182, 169, 161, 158, 156, 158, 163, 173, 186, 204, 226, 247, 275, 312, 351, 390, 441, 500, 571, 658, 732,
                723, 643, 563, 495, 440, 389, 347, 310, 276, 250, 228, 207, 194, 185, 179, 173, 174, 172, 179, 187, 203, 218,
                238, 263, 295, 330, 368, 412, 462, 521, 593, 687, 759
            },
            {
                654, 583, 510, 449, 397, 353, 315, 282, 252, 227, 206, 189, 176, 166, 160, 154, 153, 154, 161, 170, 179, 194,
                214, 236, 262, 296, 333, 374, 424, 483, 542, 626, 702, 632, 561, 489, 430, 380, 337, 298, 267, 237, 213, 193,
                175, 163, 152, 145, 140, 140, 140, 145, 153, 166, 180, 198, 221, 245, 278, 315, 354, 404, 460, 521, 598, 672,
                599, 532, 472, 411, 360, 313, 279, 249, 222, 197, 177, 158, 147, 136, 127, 122, 121, 122, 129, 138, 148, 162,
                182, 203, 228, 259, 296, 335, 381, 437, 498, 571, 645, 581, 511, 448, 391, 342, 298, 264, 234, 204, 181, 161,
                143, 132, 119, 113, 108, 106, 109, 113, 122, 133, 148, 168, 186, 214, 243, 277, 315, 362, 417, 475, 543, 615,
                557, 494, 429, 372, 327, 285, 247, 218, 192, 167, 147, 130, 117, 105, 96,  93,  92,  94,  100, 108, 119, 135,
                154, 174, 197, 228, 262, 298, 344, 393, 454, 524, 596, 536, 474, 416, 358, 312, 272, 234, 204, 175, 152, 132,
                117, 103, 91,  85,  79,  78,  80,  86,  95,  107, 121, 141, 160, 184, 214, 247, 284, 327, 379, 437, 508, 570,
                517, 460, 409, 344, 296, 257, 221, 191, 166, 142, 122, 103, 90,  79,  70,  67,  65,  66,  73,  83,  93,  109,
                127, 148, 171, 198, 234, 268, 313, 361, 420, 487, 555, 503, 443, 380, 329, 285, 246, 210, 180, 153, 130, 109,
                93,  79,  66,  60,  56,  53,  55,  62,  71,  82,  98,  114, 136, 161, 190, 221, 257, 300, 347, 409, 472, 536,
                491, 430, 371, 320, 275, 237, 202, 169, 143, 121, 99,  83,  67,  56,  48,  43,  42,  46,  52,  60,  73,  87,
                105, 127, 151, 179, 210, 246, 291, 336, 391, 457, 521, 480, 419, 361, 311, 266, 228, 192, 162, 133, 112, 92,
                75,  59,  48,  38,  33,  31,  35,  41,  51,  64,  79,  97,  119, 141, 170, 203, 238, 279, 327, 380, 444, 509,
                470, 411, 353, 303, 260, 220, 185, 155, 127, 104, 85,  66,  51,  39,  29,  23,  21,  25,  31,  41,  55,  71,
                89,  112, 135, 163, 195, 230, 271, 318, 371, 432, 495, 460, 401, 345, 297, 254, 214, 178, 148, 121, 99,  78,
                59,  43,  31,  20,  15,  13,  16,  24,  33,  48,  64,  83,  104, 128, 158, 189, 225, 262, 308, 361, 423, 487,
                455, 397, 337, 292, 247, 207, 175, 143, 116, 92,  72,  54,  38,  24,  14,  8,   6,   9,   16,  27,  42,  61,
                79,  100, 125, 153, 184, 220, 260, 303, 354, 418, 482, 450, 389, 335, 286, 245, 205, 169, 140, 113, 89,  67,
                49,  32,  19,  9,   3,   1,   4,   11,  23,  38,  56,  75,  96,  121, 150, 179, 214, 253, 301, 351, 411, 471,
                448, 389, 329, 283, 241, 202, 168, 138, 110, 86,  66,  46,  29,  14,  4,   0,   0,   1,   6,   18,  35,  52,
                71,  93,  117, 145, 176, 213, 249, 296, 345, 407, 468, 447, 389, 331, 281, 239, 200, 167, 136, 108, 85,  63,
                45,  27,  13,  3,   0,   0,   2,   5,   16,  32,  51,  69,  91,  114, 143, 175, 210, 250, 292, 344, 401, 461,
                447, 391, 330, 282, 239, 203, 168, 136, 108, 85,  62,  44,  26,  13,  2,   0,   1,   0,   10,  17,  31,  50,
                69,  91,  114, 142, 174, 207, 247, 292, 343, 401, 462, 450, 391, 332, 283, 242, 203, 168, 136, 110, 86,  65,
                45,  29,  14,  4,   1,   2,   2,   6,   17,  32,  52,  71,  93,  116, 143, 175, 210, 249, 296, 343, 402, 461,
                453, 394, 338, 287, 245, 206, 170, 141, 112, 88,  67,  48,  30,  17,  6,   1,   2,   3,   9,   21,  36,  54,
                74,  95,  118, 146, 175, 211, 252, 295, 346, 406, 468, 456, 399, 340, 292, 247, 210, 175, 143, 116, 91,  70,
                52,  34,  20,  12,  4,   3,   6,   13,  25,  40,  58,  78,  96,  122, 147, 180, 216, 252, 300, 351, 411, 472,
                463, 404, 346, 296, 255, 214, 177, 147, 118, 96,  75,  56,  40,  27,  17,  11,  8,   12,  18,  30,  45,  64,
                82,  103, 125, 152, 183, 220, 258, 303, 355, 418, 477, 471, 411, 353, 304, 260, 222, 186, 152, 126, 101, 81,
                62,  48,  34,  25,  18,  16,  19,  26,  38,  53,  70,  88,  108, 131, 158, 188, 226, 265, 311, 363, 423, 487,
                479, 421, 362, 313, 267, 227, 193, 160, 132, 107, 87,  70,  55,  42,  34,  26,  26,  28,  35,  46,  60,  76,
                95,  116, 137, 167, 196, 231, 273, 319, 375, 433, 496, 493, 432, 375, 321, 276, 236, 201, 169, 140, 115, 96,
                79,  63,  51,  43,  37,  36,  37,  44,  55,  68,  85,  103, 122, 145, 174, 208, 242, 283, 331, 384, 446, 507,
                505, 447, 386, 333, 286, 245, 210, 179, 149, 125, 104, 87,  73,  63,  53,  47,  46,  47,  55,  65,  79,  93,
                112, 131, 155, 182, 216, 252, 295, 342, 399, 460, 517, 520, 462, 402, 348, 301, 258, 222, 189, 160, 135, 114,
                98,  83,  71,  65,  60,  58,  61,  65,  75,  87,  103, 120, 142, 166, 195, 227, 263, 306, 354, 413, 474, 537,
                543, 477, 418, 363, 314, 269, 235, 200, 172, 147, 127, 110, 95,  85,  76,  71,  69,  73,  77,  87,  100, 113,
                131, 154, 176, 207, 241, 274, 318, 370, 428, 487, 554, 557, 497, 437, 380, 328, 284, 247, 214, 185, 161, 139,
                122, 109, 97,  90,  84,  83,  86,  91,  99,  113, 127, 145, 168, 191, 220, 254, 290, 331, 383, 441, 508, 574,
                581, 515, 451, 396, 345, 302, 261, 228, 199, 175, 153, 136, 122, 110, 104, 100, 99,  100, 104, 114, 128, 141,
                158, 179, 207, 237, 268, 307, 351, 399, 460, 525, 598, 607, 533, 465, 411, 361, 316, 278, 242, 214, 188, 168,
                148, 136, 127, 119, 116, 113, 115, 121, 129, 141, 156, 175, 198, 222, 254, 288, 323, 370, 420, 480, 550, 615,
                628, 557, 488, 427, 378, 334, 295, 260, 230, 204, 183, 168, 155, 144, 137, 133, 129, 132, 137, 146, 158, 174,
                192, 215, 241, 273, 307, 346, 390, 441, 500, 573, 646, 658, 578, 508, 449, 398, 351, 311, 276, 247, 223, 202,
                184, 172, 163, 155, 150, 149, 149, 158, 165, 178, 192, 212, 232, 260, 294, 331, 367, 413, 471, 528, 610, 679,
                676, 603, 528, 467, 415, 367, 329, 295, 263, 237, 218, 200, 183, 177, 169, 165, 162, 165, 168, 178, 191, 207,
                226, 250, 276, 310, 345, 388, 432, 485, 548, 639, 708
            },
            {
                662, 586, 512, 452, 400, 356, 318, 283, 256, 232, 209, 191, 177, 168, 161, 155, 155, 157, 161, 168, 182, 196,
                215, 236, 267, 300, 336, 378, 429, 487, 546, 632, 714, 641, 561, 494, 434, 383, 339, 301, 267, 240, 215, 194,
                176, 163, 153, 145, 141, 139, 141, 146, 154, 168, 182, 200, 223, 249, 282, 318, 362, 411, 465, 529, 604, 682,
                610, 540, 474, 414, 363, 321, 282, 251, 223, 200, 177, 160, 147, 137, 128, 123, 123, 124, 130, 139, 151, 164,
                182, 205, 231, 262, 298, 338, 384, 438, 505, 576, 654, 585, 515, 453, 393, 346, 304, 266, 237, 205, 182, 162,
                145, 130, 120, 113, 108, 107, 110, 115, 123, 135, 150, 168, 188, 215, 246, 281, 320, 365, 421, 482, 552, 629,
                563, 497, 433, 376, 330, 288, 250, 220, 193, 168, 148, 132, 116, 106, 98,  94,  92,  94,  101, 109, 120, 138,
                154, 175, 199, 230, 264, 301, 347, 402, 462, 530, 601, 544, 478, 420, 362, 314, 272, 236, 205, 178, 155, 134,
                116, 105, 93,  84,  80,  79,  81,  87,  96,  108, 122, 140, 163, 187, 214, 250, 289, 333, 383, 443, 512, 574,
                525, 464, 413, 347, 301, 260, 224, 192, 166, 143, 120, 105, 90,  79,  72,  68,  67,  68,  74,  84,  96,  110,
                128, 149, 173, 203, 235, 271, 317, 368, 424, 494, 562, 509, 447, 389, 335, 290, 247, 214, 182, 156, 131, 111,
                94,  79,  68,  60,  56,  53,  56,  62,  71,  84,  100, 117, 139, 162, 189, 224, 262, 303, 354, 412, 478, 543,
                494, 435, 373, 323, 277, 239, 205, 171, 145, 122, 101, 84,  69,  58,  49,  44,  43,  45,  51,  60,  75,  90,
                106, 129, 151, 182, 212, 250, 291, 340, 397, 464, 530, 482, 423, 364, 314, 269, 229, 193, 163, 135, 111, 93,
                75,  60,  47,  39,  33,  31,  35,  41,  50,  65,  80,  97,  120, 144, 173, 205, 241, 282, 329, 384, 453, 518,
                472, 414, 356, 307, 263, 223, 187, 155, 127, 106, 85,  67,  53,  39,  30,  24,  21,  26,  32,  41,  56,  72,
                90,  112, 136, 166, 198, 234, 272, 321, 373, 440, 503, 465, 404, 351, 298, 256, 216, 180, 149, 122, 97,  78,
                61,  44,  30,  21,  14,  13,  17,  24,  35,  49,  65,  85,  106, 131, 159, 192, 226, 267, 314, 365, 429, 493,
                459, 400, 343, 297, 249, 211, 175, 144, 118, 93,  73,  54,  39,  25,  14,  8,   6,   9,   17,  28,  43,  63,
                79,  101, 126, 154, 185, 222, 261, 308, 360, 421, 484, 454, 394, 340, 290, 247, 209, 173, 139, 114, 90,  68,
                49,  34,  19,  9,   1,   1,   4,   10,  23,  38,  56,  76,  98,  121, 150, 182, 216, 257, 304, 352, 413, 476,
                454, 393, 336, 287, 244, 205, 169, 138, 111, 87,  65,  47,  31,  14,  5,   0,   1,   2,   7,   18,  35,  52,
                72,  93,  118, 147, 177, 213, 254, 300, 349, 409, 471, 453, 392, 333, 286, 241, 205, 168, 137, 111, 84,  64,
                44,  28,  13,  3,   0,   0,   1,   5,   16,  33,  50,  71,  91,  116, 144, 176, 211, 252, 297, 350, 408, 470,
                453, 392, 337, 285, 241, 203, 168, 137, 109, 85,  63,  45,  28,  13,  2,   0,   0,   2,   11,  17,  31,  50,
                70,  92,  115, 143, 176, 211, 252, 296, 347, 404, 465, 456, 393, 335, 283, 244, 204, 168, 138, 111, 88,  65,
                46,  27,  15,  3,   2,   1,   2,   6,   18,  33,  52,  72,  93,  117, 144, 175, 212, 252, 298, 346, 408, 470,
                456, 399, 339, 289, 246, 208, 173, 141, 115, 89,  67,  49,  32,  17,  7,   2,   1,   3,   8,   20,  36,  53,
                74,  95,  119, 148, 179, 213, 254, 300, 351, 411, 472, 463, 402, 345, 297, 250, 211, 176, 144, 116, 93,  72,
                51,  35,  21,  10,  5,   4,   6,   13,  25,  41,  59,  77,  98,  121, 149, 181, 217, 256, 304, 356, 418, 476,
                468, 408, 350, 298, 256, 216, 181, 148, 120, 95,  75,  56,  41,  28,  17,  11,  9,   13,  19,  31,  46,  63,
                83,  102, 128, 154, 186, 221, 261, 306, 359, 421, 482, 472, 416, 357, 305, 258, 223, 186, 154, 126, 101, 81,
                63,  47,  35,  24,  19,  16,  20,  27,  37,  52,  69,  88,  109, 133, 160, 190, 227, 270, 314, 366, 432, 495,
                482, 423, 363, 314, 268, 229, 192, 160, 133, 107, 88,  69,  55,  43,  33,  28,  25,  30,  35,  46,  59,  76,
                95,  115, 138, 166, 197, 234, 276, 322, 377, 440, 499, 498, 435, 374, 322, 276, 236, 200, 169, 139, 117, 96,
                78,  63,  51,  42,  37,  34,  37,  45,  56,  68,  84,  102, 124, 147, 175, 206, 244, 284, 334, 389, 454, 512,
                513, 450, 390, 337, 287, 246, 210, 178, 149, 125, 105, 87,  73,  60,  53,  48,  46,  48,  55,  64,  77,  93,
                110, 131, 155, 184, 218, 252, 296, 345, 402, 465, 520, 526, 464, 404, 349, 302, 257, 221, 189, 160, 135, 115,
                97,  84,  72,  64,  60,  57,  59,  65,  75,  87,  103, 122, 143, 166, 194, 227, 264, 305, 358, 416, 479, 537,
                544, 481, 419, 364, 317, 272, 236, 201, 171, 147, 127, 111, 97,  84,  76,  71,  69,  72,  77,  87,  99,  114,
                133, 154, 179, 206, 241, 276, 322, 370, 430, 490, 557, 563, 499, 438, 378, 329, 284, 247, 212, 185, 158, 139,
                122, 106, 97,  88,  84,  84,  85,  90,  97,  112, 125, 145, 165, 192, 221, 254, 292, 333, 386, 443, 510, 578,
                583, 518, 452, 396, 345, 302, 261, 227, 198, 173, 153, 134, 121, 111, 103, 98,  96,  99,  104, 112, 127, 141,
                159, 182, 204, 235, 271, 310, 350, 404, 464, 531, 600, 607, 538, 470, 413, 361, 314, 276, 241, 213, 187, 165,
                150, 137, 126, 119, 114, 112, 114, 121, 127, 141, 157, 176, 195, 222, 252, 288, 325, 373, 423, 481, 552, 626,
                636, 556, 487, 427, 377, 333, 293, 257, 229, 205, 183, 165, 152, 143, 135, 131, 129, 131, 137, 146, 157, 175,
                192, 215, 240, 271, 308, 347, 393, 444, 505, 576, 651, 663, 580, 511, 451, 396, 350, 312, 277, 246, 221, 201,
                183, 171, 160, 154, 149, 148, 149, 154, 162, 175, 192, 210, 233, 259, 293, 330, 367, 414, 469, 533, 610, 683,
                681, 607, 526, 466, 412, 366, 328, 291, 261, 235, 215, 198, 184, 175, 168, 164, 160, 162, 170, 177, 190, 207,
                226, 249, 274, 310, 343, 383, 437, 487, 548, 637, 716
            },
            {
                624, 556, 487, 430, 380, 337, 303, 273, 243, 223, 201, 186, 170, 161, 157, 150, 150, 148, 157, 164, 176, 188,
                212, 231, 256, 286, 321, 361, 401, 456, 516, 592, 670, 602, 532, 470, 415, 365, 322, 290, 258, 234, 211, 192,
                170, 160, 149, 141, 138, 134, 138, 146, 151, 161, 176, 195, 216, 237, 271, 303, 342, 387, 442, 496, 566, 638,
                579, 509, 452, 394, 345, 303, 269, 241, 216, 193, 173, 154, 141, 133, 126, 123, 120, 121, 127, 136, 146, 161,
                179, 198, 222, 252, 288, 321, 363, 415, 477, 537, 610, 551, 487, 425, 376, 327, 289, 253, 227, 198, 178, 154,
                142, 127, 117, 108, 107, 105, 107, 112, 119, 128, 143, 164, 184, 206, 235, 269, 302, 344, 397, 454, 518, 589,
                532, 472, 412, 360, 315, 275, 239, 212, 184, 165, 147, 126, 112, 104, 95,  90,  89,  94,  98,  107, 118, 133,
                152, 167, 192, 218, 252, 289, 327, 373, 436, 494, 556, 512, 452, 397, 344, 299, 260, 228, 197, 173, 151, 129,
                111, 99,  88,  81,  77,  77,  78,  84,  94,  103, 118, 138, 154, 178, 205, 237, 274, 315, 361, 417, 481, 539,
                494, 436, 388, 328, 288, 250, 214, 186, 159, 139, 119, 100, 85,  75,  69,  65,  64,  64,  73,  82,  94,  107,
                123, 145, 168, 196, 228, 260, 299, 345, 401, 462, 521, 483, 419, 365, 315, 277, 237, 203, 173, 150, 125, 107,
                90,  74,  65,  58,  53,  52,  54,  60,  70,  83,  96,  111, 134, 153, 183, 214, 250, 290, 328, 388, 450, 512,
                468, 406, 350, 309, 265, 229, 196, 164, 139, 115, 98,  82,  67,  57,  48,  43,  42,  43,  48,  59,  72,  87,
                104, 123, 146, 174, 203, 237, 275, 321, 371, 434, 494, 458, 397, 342, 297, 256, 217, 187, 155, 129, 107, 87,
                72,  58,  47,  36,  32,  29,  31,  40,  49,  63,  77,  94,  114, 137, 166, 195, 230, 269, 313, 365, 425, 481,
                446, 390, 334, 292, 250, 212, 179, 150, 122, 99,  82,  64,  47,  36,  27,  21,  20,  22,  29,  41,  54,  71,
                86,  109, 132, 159, 192, 221, 257, 300, 350, 408, 464, 430, 378, 327, 281, 240, 205, 171, 140, 117, 93,  74,
                57,  42,  29,  21,  12,  12,  15,  22,  32,  46,  63,  81,  101, 124, 153, 182, 213, 252, 295, 342, 399, 464,
                430, 373, 322, 275, 236, 199, 167, 136, 111, 87,  69,  51,  36,  22,  12,  8,   7,   9,   15,  26,  41,  59,
                75,  96,  121, 149, 176, 211, 248, 289, 334, 394, 456, 427, 371, 321, 271, 234, 195, 163, 134, 107, 83,  64,
                47,  29,  16,  8,   2,   2,   2,   8,   22,  37,  54,  71,  94,  117, 143, 170, 204, 246, 288, 328, 385, 446,
                423, 368, 316, 268, 231, 194, 163, 131, 102, 81,  62,  43,  27,  13,  2,   0,   0,   1,   4,   18,  32,  50,
                70,  90,  112, 140, 168, 203, 239, 279, 327, 380, 438, 423, 370, 315, 268, 230, 193, 160, 130, 102, 81,  60,
                40,  23,  9,   1,   0,   1,   1,   5,   13,  31,  48,  64,  87,  109, 138, 168, 198, 237, 279, 324, 378, 436,
                421, 366, 313, 270, 227, 191, 157, 128, 102, 80,  59,  40,  25,  10,  1,   0,   0,   1,   9,   13,  31,  47,
                65,  86,  108, 136, 166, 199, 237, 281, 321, 375, 442, 430, 370, 316, 268, 229, 194, 158, 131, 105, 83,  59,
                42,  25,  10,  2,   1,   2,   0,   2,   15,  31,  49,  69,  87,  110, 136, 168, 199, 236, 278, 324, 376, 436,
                427, 371, 315, 273, 231, 195, 161, 132, 107, 82,  60,  43,  27,  13,  3,   1,   2,   3,   8,   17,  33,  50,
                70,  91,  109, 139, 168, 201, 237, 277, 330, 385, 442, 425, 376, 322, 273, 236, 197, 165, 134, 109, 87,  64,
                47,  31,  17,  8,   3,   3,   3,   11,  22,  38,  58,  73,  93,  115, 140, 171, 203, 239, 279, 328, 387, 450,
                430, 378, 327, 277, 239, 199, 167, 139, 114, 87,  69,  53,  37,  22,  15,  9,   8,   11,  16,  27,  42,  60,
                79,  96,  120, 147, 177, 208, 243, 284, 337, 392, 448, 438, 385, 334, 282, 246, 205, 171, 141, 116, 94,  76,
                57,  42,  31,  20,  16,  15,  18,  22,  34,  49,  66,  84,  102, 123, 152, 181, 215, 251, 293, 341, 401, 456,
                446, 396, 337, 292, 251, 214, 180, 151, 123, 98,  81,  64,  50,  38,  30,  23,  23,  24,  31,  41,  54,  72,
                89,  108, 131, 154, 186, 222, 258, 302, 350, 404, 470, 460, 403, 345, 300, 258, 220, 189, 156, 131, 107, 88,
                72,  59,  48,  38,  33,  31,  33,  40,  52,  62,  80,  98,  118, 136, 165, 196, 225, 269, 312, 361, 417, 470,
                470, 417, 363, 313, 265, 228, 196, 165, 140, 117, 96,  77,  69,  55,  48,  42,  42,  42,  50,  60,  72,  86,
                104, 123, 146, 170, 203, 236, 275, 319, 371, 429, 483, 485, 430, 371, 324, 277, 239, 204, 177, 149, 124, 108,
                89,  76,  66,  59,  54,  52,  54,  59,  69,  82,  98,  112, 134, 154, 183, 216, 247, 290, 333, 387, 444, 509,
                507, 446, 388, 337, 290, 252, 217, 187, 159, 137, 118, 99,  88,  79,  71,  64,  64,  66,  71,  79,  93,  107,
                123, 147, 168, 195, 229, 256, 296, 345, 401, 454, 521, 518, 460, 404, 348, 302, 266, 231, 199, 170, 149, 127,
                111, 98,  92,  84,  79,  75,  79,  84,  92,  106, 119, 136, 154, 181, 205, 237, 271, 312, 360, 412, 472, 530,
                542, 477, 415, 361, 319, 275, 239, 213, 184, 161, 140, 123, 112, 106, 97,  89,  91,  92,  96,  106, 119, 131,
                149, 169, 195, 218, 253, 288, 327, 371, 429, 492, 554, 561, 489, 427, 378, 331, 292, 256, 227, 196, 177, 154,
                138, 125, 119, 108, 104, 105, 107, 112, 116, 129, 147, 163, 183, 209, 236, 271, 302, 344, 392, 448, 509, 579,
                584, 516, 444, 390, 347, 307, 271, 241, 215, 188, 168, 152, 142, 134, 125, 123, 120, 121, 128, 136, 148, 163,
                182, 201, 223, 253, 290, 324, 363, 414, 460, 535, 600, 605, 535, 466, 415, 366, 322, 289, 253, 224, 205, 186,
                168, 158, 150, 142, 139, 137, 137, 147, 151, 162, 179, 196, 221, 242, 274, 309, 344, 388, 434, 487, 564, 630,
                627, 556, 481, 429, 376, 336, 303, 266, 242, 220, 198, 183, 168, 165, 156, 153, 151, 151, 159, 165, 179, 190,
                211, 233, 256, 289, 325, 361, 403, 450, 507, 589, 656
            }
        }
    },

    /* ISP_BNR_LSC_CALIB_TABLE_S */
    {
        /* RGain */
        {
            4096, 4106, 4153, 4197, 4251, 4297, 4350, 4393, 4443,  4482, 4532, 4577, 4619, 4645, 4699, 4731, 4777,
            4813, 4840, 4878, 4923, 4957, 4988, 5027, 5070, 5118,  5151, 5184, 5220, 5253, 5308, 5350, 5365, 5414,
            5454, 5471, 5519, 5576, 5594, 5643, 5653, 5712, 5752,  5814, 5833, 5885, 5927, 5981, 6012, 6040, 6087,
            6156, 6159, 6215, 6232, 6310, 6309, 6403, 6377, 6445,  6491, 6540, 6567, 6623, 6641, 6695, 6744, 6810,
            6858, 6904, 6906, 6966, 7034, 7073, 7111, 7109, 7234,  7239, 7286, 7358, 7380, 7460, 7486, 7562, 7612,
            7624, 7671, 7753, 7746, 7875, 7844, 7891, 7991, 8048,  8103, 8136, 8231, 8245, 8310, 8366, 8435, 8437,
            8514, 8546, 8638, 8666, 8719, 8756, 8799, 8905, 8943,  9016, 9093, 9220, 9242, 9302, 9413, 9469, 9500,
            9533, 9605, 9635, 9742, 9775, 9906, 9978, 9982, 10120, 9793,
        },
        /* GrGain */
        {
            4096, 4098, 4142, 4191, 4243, 4285, 4330, 4376, 4417, 4463, 4501, 4547, 4589, 4628, 4664, 4700, 4733,
            4777, 4809, 4848, 4876, 4904, 4954, 4979, 5028, 5060, 5092, 5130, 5160, 5189, 5238, 5251, 5297, 5322,
            5374, 5421, 5454, 5496, 5512, 5552, 5595, 5633, 5657, 5711, 5725, 5775, 5826, 5839, 5905, 5939, 5974,
            5993, 6052, 6081, 6132, 6129, 6183, 6222, 6253, 6307, 6345, 6361, 6449, 6465, 6496, 6546, 6611, 6632,
            6654, 6699, 6724, 6780, 6801, 6900, 6938, 6934, 7017, 7046, 7085, 7122, 7170, 7242, 7336, 7328, 7401,
            7422, 7453, 7465, 7568, 7574, 7657, 7752, 7762, 7775, 7794, 7868, 7925, 8011, 8034, 8063, 8087, 8210,
            8233, 8255, 8358, 8357, 8370, 8486, 8491, 8595, 8625, 8721, 8747, 8804, 8887, 8953, 9019, 9049, 9137,
            9182, 9258, 9280, 9347, 9515, 9477, 9518, 9543, 9670, 9555,
        },
        /* GbGain */
        {
            4096, 4115, 4161, 4210, 4260, 4306, 4349, 4401, 4444, 4480, 4526, 4569, 4610, 4653, 4694, 4720, 4757,
            4803, 4840, 4880, 4893, 4920, 4976, 5014, 5049, 5085, 5113, 5146, 5194, 5208, 5256, 5288, 5333, 5357,
            5406, 5429, 5470, 5512, 5537, 5586, 5624, 5644, 5702, 5748, 5787, 5767, 5841, 5885, 5932, 5965, 5989,
            6033, 6069, 6124, 6153, 6180, 6231, 6293, 6319, 6344, 6374, 6412, 6455, 6539, 6561, 6595, 6629, 6672,
            6696, 6731, 6782, 6850, 6887, 6926, 6962, 7025, 7089, 7109, 7139, 7195, 7255, 7302, 7319, 7390, 7408,
            7492, 7479, 7505, 7627, 7647, 7712, 7805, 7725, 7804, 7886, 7925, 8001, 8055, 8094, 8221, 8122, 8235,
            8292, 8300, 8337, 8469, 8489, 8551, 8613, 8611, 8714, 8741, 8806, 8919, 8970, 9020, 9043, 9151, 9200,
            9275, 9293, 9392, 9382, 9466, 9530, 9616, 9723, 9689, 9533,
        },
        /* BGain */
        {
            4096, 4120, 4151, 4191, 4246, 4289, 4344, 4395, 4430, 4471, 4507, 4562, 4588, 4631, 4668, 4695, 4727,
            4775, 4806, 4832, 4864, 4896, 4944, 4967, 5005, 5059, 5088, 5108, 5141, 5198, 5183, 5266, 5300, 5305,
            5327, 5404, 5422, 5458, 5496, 5518, 5563, 5587, 5613, 5687, 5712, 5740, 5796, 5823, 5827, 5919, 5904,
            5934, 5982, 6005, 6057, 6084, 6151, 6153, 6227, 6236, 6290, 6289, 6323, 6394, 6461, 6465, 6497, 6548,
            6582, 6593, 6654, 6669, 6684, 6752, 6785, 6821, 6842, 6952, 6968, 7088, 7073, 7083, 7193, 7226, 7334,
            7264, 7408, 7369, 7443, 7531, 7488, 7572, 7580, 7623, 7738, 7721, 7844, 7836, 7854, 7891, 7942, 7867,
            7950, 8011, 8205, 8180, 8196, 8261, 8312, 8384, 8419, 8354, 8608, 8632, 8768, 8740, 8754, 8925, 8901,
            8910, 8967, 8961, 9117, 9138, 9208, 9283, 9338, 9417, 9270,
        },
    },

};

static const ISP_CMOS_CLUT_S g_stIspCLUT = {
    1,
    128,
    128,
    128,

    {
        {
            0,          1065354243, 7349236,    12591103,   1072692221, 2093044,    15734785,   14686204,   4190187,
            8391641,    10491892,   7351269,    12595140,   15751088,   7357398,    7364553,    16808863,   14721936,
            6323133,    3185586,    10536834,   5302132,    1071691689, 1065407391, 1072760679, 1066476378, 1058073494,
            1049691021, 1060192077, 1053907776, 1042357123, 1033974650, 1047623475, 37763067,   1026639729, 69227516,
            35664878,   30422018,   74469360,   49303559,   36713475,   9454577,    61886468,   17847297,   18889723,
            1075169,    33574917,   1071673339, 4215784,    1066439637, 6316029,    1055951864, 1071677403, 1050722250,
            1064336377, 1037085685, 1059105743, 1032905663, 1047567350, 1016121329, 1042338756, 1014040500, 1027651571,
            994107374,  1023473594, 99641342,   1005638640, 125859841,  1004608431, 68182028,   983625708,  84963348,
            111175668,  28337169,   144736246,  37776419,   84960263,   1070623765, 106984459,  1071673392, 48259088,
            1047560218, 60846108,   1040217149, 10512403,   1024495647, 16804905,   1011907658, 1059091480, 1000383524,
            1055944758, 983598166,  1036027933, 974173224,  1026586691, 954240098,  1011915810, 149982212,  998277200,
            169910279,  986754086,  99647517,   968919132,  112233511,  961592362,  47215668,   939561064,  55606342,
            173053943,  1076298,    198225911,  3173477,    124815376,  1034971232, 141596695,  1031822466, 73431081,
            1001416820, 83919927,   990924958,  23097407,   967861384,  29388886,   953174202,  1053846613, 935355547,
            1053844595, 915422421,  1018194026, 187741194,  1010849936, 204523534,  984638590,  124819505,  972049580,
            137405500,  951084178,  63995992,   934298823,  72385643,   918578341,  7366783,    896547043,  11560089,
            219203575,  1029722276, 238083063,  1027622086, 156280862,  982531272,  170965029,  975186161,  94407749,
            938485995,  104895571,  924847389,  35681388,   895490318,  40924290,   877654344,  1054891153, 220257297,
            1055937711, 235990037,  1005602998, 149991495,  1000355036, 161528914,  960509146,  80775293,   950016263,
            89164943,   917512445,  14704818,   901774642,  19946700,   874515744,  1026570471, 853534045,  1025518856,
            255914998,  967841051,  273745910,  962592068,  184599596,  913304910,  199283763,  900714879,  115383394,
            858769793,  125871216,  840934842,  47215768,   251723800,  54555822,   267457564,  1056984269, 174114909,
            1059079402, 186700904,  997205249,  98603169,   993006886,  106992819,  939524404,  24140006,   931129698,
            28333311,   886037863,  1025515818, 870300060,  1025512779, 831502746,  957344109,  810520023,  951047574,
            290529270,  889173424,  307312630,  877630945,  212919354,  822050291,  226554946,  804215295,  136359039,
            283190303,  146846862,  298924067,  60847300,   199285875,  68187353,   211871869,  1061174536, 116431046,
            1063269669, 124820696,  990905675,  33575193,   988804464,  37768498,   922733967,  1025509740, 914339259,
            1026555277, 855611857,  945799615,  840923647,  940551656,  788489727,  866089471,  767506943,  854547967,
            325143542,  786379263,  341926902,  768544255,  241238089,  314657831,  254873680,  1073729540, 157334684,
            224457864,  168870059,  2098175,    74478831,   134258922,  81818885,   10491885,   1066413378, 43010380,
            1068508512, 16788432,   985654677,  1026552238, 983553466,  12600251,   905944552,  934255103,  897549823,
            7364519,    826234367,  843006463,  811546111,  3179412,    746524159,  750708223,  725542399,  1072735105,
            359757814,  1066382339, 12565510,   39852028,   269557847,  6288378,    1070590977, 23075843,   179357881,
            13633505,   8393724,    7349248,    88110363,   17831869,   13639644,   3159033,    1071652221, 18891679,
            15742917,   1069563891, 980403679,  18901891,   9458609,    1058033647, 889155071,  17863528,   5271454,
            1046502379, 796857855,  17873742,   1086346,    1034972134, 704559615,  11531264,   1070642039, 91251699,
            1072665606, 5245953,    44048372,   56641543,   1071635454, 6299638,    42997761,   19939350,   10486772,
            9449444,    11542530,   1070611490, 15731661,   4211671,    4206588,    1053833260, 18885550,   1069569995,
            15350,      1034958903, 18896785,   1061187519, 1063274481, 1016083521, 18906998,   1053853620, 1051743213,
            997209164,  17868635,   71319542,   1040212969, 122724334,  16831297,   43003909,   1028682724, 78674958,
            24113149,   11546635,   100691943,  36724781,   0,          1072706573, 77617150,   18505,      6297598,
            1061174288, 35669007,   1043346532, 8398828,    1046495251, 7355420,    1015030910, 8403933,    1030768662,
            1062221863, 986714263,  19409,      1016089625, 1044396081, 960494769,  1065378757, 106987504,  1025520700,
            152098795,  1056996281, 67134474,   1006646343, 101754904,  1049662382, 28332066,   986722385,  52461636,
            73419756,   1071661110, 144748510,  6314096,    70267904,   1047541832, 100700158,  1037055131, 23080969,
            1024470106, 56650782,   997200068,  4207628,    1001398380, 17847355,   960490733,  1067464718, 978327678,
            1058029655, 922732822,  1053834257, 137411564,  1028664433, 181474279,  1039156244, 90215443,   1001396363,
            123787298,  1023428632, 45117497,   973080740,  67149917,   1007702043, 3166301,    946861246,  12609687,
            124817378,  1039152255, 178319316,  1032860881, 88110078,   1005590689, 126926849,  983563530,  47208470,
            974126274,  76583982,   934267202,  11552812,   941614307,  28339291,   886019450,  1059077183, 166786025,
            1058030726, 209800164,  1036005457, 112246813,  1017127087, 145818669,  1012934755, 59805776,   979369177,
            81837173,   989863029,  9461892,    941612289,  18905278,   966792327,  1034958006, 903854378,  1029714182,
            162582489,  989858023,  210841546,  969928015,  113288192,  946855191,  153154565,  910141846,  67141670,
            904900936,  95468607,   850354654,  23093323,   196161510,  39879802,   239175648,  1058030702, 135326759,
            1059081396, 167850039,  1022371984, 74494057,   1007687917, 96525454,   989858994,  15757482,   958391590,
            25199845,   958394579,  1031811308, 910143838,  1026568508, 925881588,  976221484,  861896086,  956292499,
            195104719,  921680236,  242315200,  884966891,  139515907,  868187564,  178333704,  814690815,  86026295,
            224488418,  113303633,  6264838,    34633834,   156309554,  50370714,   10471417,   1058031773, 89181314,
            1061180642, 8375275,    1011883214, 22053073,   999297322,  12570584,   968880383,  1028665633, 939510130,
            18866115,   925877552,  963634545,  879723962,  25161647,   882874720,  897553856,  820986367,  31457179,
            226578373,  832522751,  274837429,  36705160,   165743622,  252814303,  203511820,  20970481,   104909896,
            178340924,  132187234,  1044475,    45125770,   103868570,  60862649,   1044475,    1060131019, 27299064,
            1062231312, 7335925,    1003492620, 1025519959, 990905704,  7335919,    948950348,  949998006,  920629695,
            5238761,    895457676,  873428479,  850352639,  4191204,    840916428,  796857855,  779027967,  2095071,
            258052026,  2059279,    6257677,    48252899,   190922762,  11513850,   9418750,    22031353,   122745946,
            12565475,   8375283,    4199432,    55616681,   11517898,   10472418,   1071646738, 1062230265, 23057326,
            15718350,   1067449371, 995101001,  34597778,   22013881,   1059057699, 930069913,  44042103,   28309413,
            1049617453, 865038824,  54533980,   33556369,   1040177206, 800006655,  11521019,   40901502,   75536341,
            290575280,  3136506,    29359084,   46166005,   216101901,  5233651,    10482679,   18892819,   140580971,
            11526118,   1072689148, 1071655981, 66108617,   14673881,   4190200,    1054871622, 1063280936, 15724492,
            8384498,    1039135837, 986710406,  17824703,   6287340,    1022351477, 912238053,  18875315,   5239782,
            1004518541, 834618879,  33562601,   3142625,    101771208,  758049279,  8391674,    2095068,    67154931,
            1070547996, 1047554,    60840919,   32538654,   8360964,    2095108,    35665902,   1069127,    13614063,
            1073738757, 10492930,   1046488175, 10467286,   1069543430, 1051662,    1021311126, 15715260,   1063249928,
            1069548566, 994036925,  29351840,   1058006026, 1063254047, 967811300,  40892292,   62943196,   1054862376,
            128005050,  49288041,   34622455,   1045421105, 86045682,   59780943,   11545614,   1035981883, 45134890,
            16760829,   1070602272, 91270085,   5272674,    7328763,    1060111408, 60851173,   1040201881, 3136504,
            1049620544, 31479813,   1004534991, 8380397,    1035984977, 7354401,    967819525,  13624287,   1022348385,
            1063263290, 932153658,  14674898,   89178063,   1046478929, 153191340,  16774086,   56659956,   1030744169,
            104937457,  18874297,   26240024,   1012911233, 56682551,   20974509,   15418,      995078297,  8428669,
            45101024,   1050679387, 119603122,  1033916610, 20976626,   1029698682, 83938270,   987759879,  0,
            1008719001, 49321993,   941603148,  2096131,    985641144,  16803891,   896494993,  2095108,    115411905,
            1061173340, 179426206,  1071640581, 76600307,   1032850563, 123828209,  1066396679, 38836260,   1007674538,
            67181636,   1061152777, 3171413,    981448912,  10535064,   1055908875, 1043344516, 955223287,  1028678891,
            76579790,   1012923571, 148984734,  972032319,  48259050,   981453025,  107025366,  916434323,  22034435,
            949982479,  66114574,   859788775,  3154967,    140598195,  25203782,   1072653320, 1065357352, 95492082,
            1059084413, 6255609,    1054866488, 51432497,   1021320372, 10448875,   1042278473, 6326383,    985653482,
            19883994,   1028641881, 1037059245, 949986591,  29323208,   1015005290, 995098859,  914319701,  44005301,
            105961404,  955235624,  177318793,  60784546,   72394721,   914323813,  129063887,  77562766,   40925190,
            166833061,  80808980,   4181996,    12603434,   114382833,  32555098,   1073725424, 1061170251, 61931581,
            1058043039, 2076657,    1039140970, 9481354,    1010837733, 10462190,   1019208841, 1030772951, 964681002,
            18848744,   997179561,  979372323,  918524270,  26186722,   975150280,  929019247,  873417139,  34573277,
            134294440,  877617596,  206700404,  42959831,   95481818,   192019351,  151103431,  14692308,   57717771,
            132226032,  95504410,   3149799,    21003324,   72430667,   38857838,   1073737718, 1060128876, 12637349,
            1055954113, 3135488,    1027609755, 1025536256, 1000356117, 6275080,    997187786,  963644763,  944758121,
            8366096,    965717240,  903850422,  888111549,  8360984,    934247718,  841958911,  832513535,  9403424,
            163676052,  1070542870, 1068456975, 33591228,   118568914,  9392126,    3107840,    17851355,   73461777,
            14634983,   8352754,    6305783,    28355664,   24071120,   14642147,   1072696336, 1059087502, 34560952,
            24079313,   1068492838, 1016078540, 53439390,   36664255,   1062192188, 975167754,  73365380,   52394923,
            1055891539, 934255943,  94340970,   69174168,   1047493737, 893344132,  1022970,    85952389,   53539749,
            192009087,  3120117,    7328746,    33602510,   140608459,  6262766,    2082799,    15762423,   88157207,
            14649316,   1073723377, 1072711710, 35706980,   24085464,   6268912,    1056969796, 1056998576, 35619788,
            14655467,   1043325032, 1005596925, 48202687,   23042021,   1028631693, 955243849,  60785587,   30380000,
            1012890802, 903842198,  9437152,    38766554,   75585420,   852440546,  1042412,    47153108,   49352642,
            221391722,  1073729524, 22037450,   24169463,   162646980,  6275063,    8396765,    1072727084, 102851613,
            12562424,   1048559,    1047543904, 42009720,   17801209,   1041403,    1024457876, 1055957202, 21991418,
            4180996,    1001372871, 994065709,  26182652,   7320588,    977238267,  934272393,  23093192,   8364052,
            97631092,   873429476,  9451489,    8357916,    64055222,   811537919,  1053687,    9401380,    31527929,
            1063197731, 1044488,    40937389,   1071693883, 4145162,    1073730583, 25197516,   1039166589, 12538866,
            1071626278, 11553769,   1005591744, 18828252,   1068473397, 2105348,    974113026,  28266436,   1065319492,
            1070595099, 940538180,  42951595,   43041713,   1065343025, 119676763,  63927185,   26251220,   1059042375,
            78757803,   83853175,   10509303,   1051693150, 37838842,   104828765,  1072704535, 1044342900, 1070660682,
            1022972,    1062207541, 64032656,   1028692123, 2071543,    1052759122, 44095418,   987773163,  4167666,
            1042262128, 24158179,   946854204,  10456041,   1030716557, 6317067,    904885644,  18842590,   65086361,
            1064316977, 1056909323, 29329362,   42002376,   1050672214, 1070539772, 41911237,   19965943,   1035978875,
            11474924,   54494137,   1072719909, 1020236960, 27200477,   66028460,   1052781650, 1004495044, 45024204,
            13634521,   1033891966, 88177522,   68091834,   4191206,    1015002282, 62993319,   92208040,   1072684017,
            995064022,  36761565,   117372821,  2082806,    86083456,   11577362,   1057989608, 9418744,    56703932,
            1060136006, 1067419624, 14657529,   27324408,   1036001402, 4157415,    19896314,   1071685684, 1012915374,
            16735204,   24087547,   1043355759, 988780769,  32458720,   28277756,   1015024810, 964647188,  49230811,
            31487931,   987742437,  114418515,  67052501,   15748053,   958363935,  80843669,   84873167,   5252076,
            108129127,  48316375,   1061164998, 0,          71406512,   14739482,   1066397652, 1041424,    34683897,
            1054906460, 1072679905, 1073727519, 1071701059, 1022379167, 8366059,    1070573613, 1033929868, 989851873,
            19892211,   1067420733, 996157653,  957325603,  30369787,   1063219276, 960483615,  924798308,  40846339,
            52485023,   922711400,  139611955,  51323914,   34645955,   130174799,  99741571,   1070631844, 17855462,
            86109093,   58822610,   1069569982, 4210695,    42042363,   17902626,   1071654872, 1067455526, 1069619282,
            1049675890, 2095088,    1058007108, 1024503977, 1008756931, 7324678,    1047510113, 978340097,  966789395,
            11507739,   1035964543, 933223769,  925869412,  14641200,   1024418972, 887059888,  883901876,  17775685,
            76628865,   1056893981, 1049570323, 9503617,    53543856,   1073671174, 1064248323, 4244392,    30459872,
            15656943,   4135924,    33742,      9470990,    32433113,   18812901,   1070614515, 1062225980, 52356034,
            35588052,   1068501015, 1043336296, 76474282,   55509955,   1065339962, 1024446612, 104786833,  79626161,
            1061130333, 1004509376, 134146935,  104790942,  1055872128, 984571116,  1056925689, 129955723,  26311519,
            101822306,  1068455922, 1053798376, 14757778,   71394206,   7291882,    1062180840, 3204036,    42014682,
            21967841,   1071610856, 1066440694, 12634134,   38741974,   10445798,   1055934504, 1058045009, 58661834,
            24072162,   1044381785, 1028665484, 79630270,   40844253,   1032828042, 1001384135, 100598706,  57617368,
            1020225724, 973053186,  1060101079, 75438034,   43119419,   944723260,  1066384350, 93259724,   24222587,
            127015747,  1023972,    1060121534, 6373306,    90292108,   12550120,   1063257037, 1061218298, 53569493,
            26175466,   1069538266, 1042320441, 15796254,   39800811,   3127270,    1023423608, 1052815463, 54473708,
            13604847,   1004525751, 1015044273, 68099053,   25130999,   984580343,  979369210,  1065374645, 35608575,
            59927320,   941598019,  1066410953, 46085126,   34734948,   903825804,  1071642589, 56562702,   8495025,
            152208164,  5230574,    1070638998, 1055995901, 108142458,  13608957,   1069577137, 1029753930, 64075728,
            20937739,   1070612427, 1002464407, 18959398,   28268569,   1072697316, 974127333,  1047585917, 34549800,
            5234683,    947886386,  1001422037, 3196818,    9415696,    1038018575, 955257133,  36787,      13598757,
            1061083135, 910141829,  1072714707, 15684666,   11452400,   863977948,  1072701426, 18818128,   36613088,
            1047456808, 1041422,    12657518,   63871951,   1065282577, 2076714,    7398293,    94276542,   7269370,
            1014854,    2139067,    125729709,  24045540,   1073694819, 1071670241, 159280026,  41870285,   17907568,
            1069556741, 1035957219, 63891382,   9500573,    1067444264, 1056920545, 90105757,   2143177,    1063234635,
            4142046,    119466884,  1068527605, 1059025007, 25105371,   148828010,  1062217759, 1053766802, 49214423,
            1051684861, 1055908937, 31563589,   74373074,   1063215094, 1047502964, 20009848,   100580301,  1002478,
            1038048414, 8456107,    126786503,  14629861,   34715469,   1071692765, 1035993015, 30354396,   20013958,
            1061187599, 1052757953, 48177104,   5312447,    1050682432, 1070572492, 69145540,   1064353784, 1039128690,
            14645205,   90115000,   1049652272, 1026527395, 34556894,   112132012,  1033902185, 1013925076, 54468582,
            1056959443, 1019201697, 51519260,   74381293,   1062194138, 1002403033, 33671003,   93244404,   1070574561,
            51523370,   15821723,   1037076362, 6262758,    29478768,   1070666714, 1050693538, 18838505,   7434165,
            1051768857, 1064309689, 33512426,   1059131387, 1032872024, 5233615,    47136747,   1036037185, 1013974168,
            19899364,   60762092,   1012944008, 994028759,  33516537,   75436013,   989850830,  974083351,  47132685,
            1064331178, 965709077,  72523506,   59702305,   1065368511, 68331270,   47331134,   1043403613, 1068502995,
            39992153,   22139786,   1051773825, 1041381,    9555884,    1069640663, 1060145061, 9419765,    1053908991,
            1043398692, 1069563847, 17797124,   1022423123, 1016109169, 6290409,    25126930,   991985831,  988820670,
            13612043,   31409184,   960499963,  961531147,  19886125,   37690415,   929014096,  934241625,  25111631,
            4252546,    1039049765, 1026487319, 1052876592, 1092515,    1064211471, 1049549831, 1054952288, 1072721860,
            15632376,   1073662967, 1057027984, 1072707555, 42892258,   24033256,   1060153280, 0,          72249292,
            50242520,   1063277551, 2083868,    103704500,  78549959,   1064304670, 2070584,    138304412,  110003126,
            1064283213, 1007701,    175002500,  142504868,  1063213181, 1072639089, 1036988409, 175006609,  1063398147,
            22111065,   1059001328, 1025476580, 1059179327, 13704070,   7272423,    1046438882, 1054960508, 5298099,
            31383517,   1067402207, 1050741688, 1071681503, 56543187,   14623709,   1046522868, 1065371658, 83800008,
            36635609,   1040205873, 1059063860, 113155005,  61793237,   1033889902, 1051706463, 142508977,  86951888,
            1025476779, 1043300489, 1035975629, 113159114,  1226453,    1033845939, 1054839761, 139366340,  1064454942,
            42065712,   1073703893, 1026560945, 1052893031, 27364202,   19874776,   1044375484, 1041331120, 11615139,
            41885659,   1061141447, 1028719610, 1071704028, 63896540,   5213137,    1016108100, 1057002516, 86955997,
            24076250,   1001399439, 1042301004, 110015454,  43988962,   987740377,  1027600517, 1036010400, 63900649,
            1018079251, 1010801853, 1050677170, 83813361,   1051625475, 994004213,  1067441090, 103725048,  12479475,
            62021383,   10463186,   1030793086, 47075299,   39976781,   27228129,   1043360662, 83768275,   18980754,
            43993071,   1056976813, 121509826,  1069629400, 60758013,   1071642564, 161348529,  1047583774, 77521931,
            12566490,   201187232,  1024490597, 1040240500, 27232238,   1012877277, 1001397419, 1050708882, 40848387,
            1044324313, 978304241,  1062227887, 53416983,   2028502,    954162488,  4043,       67035180,   34524114,
            83025629,   12570599,   1040267083, 65970126,   53636912,   24088578,   1047588719, 99514313,   25297794,
            33509405,   1055959955, 134108100,  1068603349, 42931256,   1064330166, 168700863,  1038165033, 1047615303,
            8152,       1009772455, 1006680189, 1052838769, 10476538,   1038069679, 976242897,  1059110811, 16748572,
            1066367928, 944757030,  1064334276, 23022654,   20923328,   913272186,  1070606316, 28248160,   49221576,
            1026469936, 3136532,    1051838232, 78568400,   1051630618, 5214269,    1053913928, 106866647,  3050499,
            7290982,    1055990648, 136213470,  29261805,   1058136858, 1059114920, 1006666608, 56521687,   1057065808,
            1061191639, 1030767493, 87976896,   1055994758, 1064314886, 1055916954, 120479657,  1055972284, 1065343029,
            7323566,    156129168,  1054900209, 1064272997, 32473026,   192827256,  1052779559, 1062154389, 55525334,
            1026506749, 1049611357, 1065507556, 79626218,   1047471092, 1044344980, 1061288737, 102677502,  1070532587,
            1068659436, 1057069917, 1005658937, 18803682,   1061292847, 1052851098, 1026611034, 43963352,   1053927281,
            1048632278, 1046513531, 70171598,   1046560692, 1043363858, 1067465628, 98478019,   1038145527, 1037047887,
            14675900,   127831991,  1028681786, 1029683340, 33529820,   157186987,  1017120894, 1021270218, 50287613,
            1026543563, 1006608578, 6483633,    67043358,   1045407695, 6487742,    1069712122, 1007796994, 1064271827,
            1066568461, 1058150211, 1023503151, 9394135,    1051858781, 1047635852, 1038159708, 30356442,   1037149101,
            1035025365, 1053865865, 52366299,   1020342269, 1022413855, 1068522422, 75426780,   1003534414, 1008753769,
            8389603,    98486237,   985679007,  995094708,  20947984,   121545694,  968872176,  980386047,  30361662,
            1028676504, 1020155950, 1001306139, 1012032202, 1043343273, 1055800344, 1034852363, 1021443843, 1059059642,
            17703938,   1068399611, 1030854461, 2081738,    54398956,   29252587,   1040266102, 18845658,   93191125,
            65945563,   1048628144, 35610600,   133030847,  102638539,  1055941610, 52375542,   174968744,  141428666,
            1062205476, 69139460,   216906640,  181268392,  1065324640, 84854802,   1016003576, 221107095,  1016267410,
            1035005797, 1048499182, 998203359,  1020433112, 1045475203, 7253988,    1028600795, 1023549214, 1055943584,
            40799194,   1060046807, 1026665316, 1067462589, 75394000,   17752020,   1027684266, 7335897,    111036358,
            50246608,   1027654641, 18853876,   147728315,  82742219,   1026575417, 29323279,   185468847,  117334983,
            1024447617, 38744107,   1011849154, 151928770,  998139928,  47117382,   1041196996, 186521532,  1042168839,
            1045528370, 1071593415, 994050979,  13506551,   1050751836, 27199433,   1023396779, 58585062,   1055975302,
            57595851,   1051695028, 104712150,  1061198767, 89041868,   6250428,    150840262,  1067470808, 120486862,
            34548676,   196967349,  0,          152981455,  63895500,   244144037,  4174889,    1006647179, 92193747,
            990845911,  6252625,    1034943386, 121540571,  1032775634, 8330362,    1061142441, 150887394,  1073656781,
            1058149118, 13599671,   994092902,  41845705,   1057077045, 40847301,   1018192763, 83775428,   1057054571,
            67046355,   1043342223, 126753728,  1055983521, 93246433,   1068490660, 169733051,  1054911447, 119445486,
            19898296,   212711350,  1053839372, 1005638485, 43999180,   983551895,  1051719746, 1028688752, 68100064,
            1022332829, 1047502969, 1050691466, 91151348,   1061114788, 1042236591, 1048485,    114202632,  26153899,
            1072865995, 23050175,   996231976,  63886259,   1065500429, 45051865,   1016134474, 102668218,  1058133840,
            64956403,   1037086571, 140400577,  1050768275, 84859918,   1056990091, 179182536,  1042353110, 1006727965,
            3150764,    975209302,  1032889369, 1024532293, 24102860,   1010841448, 1023425628, 1042336620, 41909229,
            1047523195, 1012913312, 1060140946, 58664973,   9413518,    1001352420, 4204473,    75422766,   43998113,
            13842071,   22008800,   1000468203, 77533108,   1072874214, 35617799,   1016174360, 111069127,  1059214133,
            49226798,   1030830918, 144604122,  1044504453, 1009914598, 1046537075, 970012436,  1028746197, 1022472985,
            1061194656, 1001447219, 1011938341, 1035031373, 2109388,    1032883025, 995131510,  1047589760, 15718393,
            1064318832, 977275080,  1059099571, 25131047,   22011791,   959419673,  1069560806, 34544725,   52399022,
            1003382841, 4182042,    1006802605, 80688077,   1037978659, 11496527,   1016213223, 108977133,  1072574477,
            1014149806, 1026673440, 964815571,  35527671,   1020413678, 1036084058, 992052989,  73271265,   1027726125,
            1044447123, 1020340008, 112062410,  1032941421, 1052809165, 1046529874, 154000307,  1038156717, 1059073031,
            1072718717, 195938204,  1042322414, 1063240770, 24118185,   238924676,  1043342383, 1066359933, 48209876,
            999230461,  1045410928, 1014185583, 70203392,   1031727091, 1018385014, 1018350261, 960667281,  1064223721,
            1019402946, 1021466363, 983707335,  24027103,   1020420878, 1025632065, 1006748414, 57572309,   1019341658,
            1027699591, 1029789493, 93214667,   1018261415, 1028718542, 1049683820, 128858048,  1014035445, 1027639317,
            1069579172, 166598581,  1008759876, 1025511517, 12585948,   204338090,  1004533906, 1023384742, 28283925,
            996126657,  1001262136, 975076384,  957567567,  1026523075, 1047390242, 1020153871, 976411281,  1055870918,
            19777547,   1065233407, 994205396,  12525512,   66955253,   35521519,   1010951959, 42921930,   114132959,
            81648606,   1026648923, 73319372,   162358217,  127776718,  1039200159, 104764365,  211633074,  173903806,
            1049654244, 137258958,  260907932,  221079469,  1059058731, 168703951,  993969143,  268256156,  978199580,
            994071428,  1036948461, 969881562,  1032713227, 1020270483, 7235554,    1011811285, 14533626,   1048566689,
            50214872,   1053741008, 70095850,   1023920,    94243789,   20880331,   124608473,  27222974,   138272707,
            62810055,   179122121,  53423052,   183350200,  105789378,  233634745,  80670682,   228427693,  147719101,
            288148394,  106869735,  986675127,  190697401,  967765969,  133069813,  1027554232, 233676724,  1020179403,
            994113351,  1067385785, 963637139,  1072592838, 1017163618, 34524090,   1002418074, 50215872,   1040213885,
            74355643,   1041199009, 101579707,  1062216600, 114187197,  6239144,    152944566,  12573618,   155066302,
            45020079,   204309426,  34575308,   195946431,  82753462,   255674285,  55528422,   978331510,  121534397,
            956282758,  75431937,   1017111427, 160315332,  1006595979, 95336475,   1054842768, 198048715,  1055860625,
            998350602,  17783709,   957392716,  30335895,   1016154929, 53417898,   993024863,  78551965,   1033959256,
            90100663,   1028658034, 126767012,  1051763583, 125734852,  1065339780, 174983083,  1069567910, 162417617,
            26181527,   222150578,  13630412,   972086069,  60766122,   944799547,  29337587,   1006668622, 94301117,
            990916427,  42946586,   1040202598, 127836112,  1038080860, 55508034,   1073736575, 161372132,  10454894,
            1003635404, 33528728,   953245445,  54474623,   1016193791, 64965553,   985729828,  99541905,   1028752179,
            96402378,   1017165634, 143560612,  1041310566, 126790627,  1048600417, 187579318,  1052820377, 966889203,
            6294400,    933316335,  1064330188, 997274392,  37729182,   976284427,  0,          1026612029, 66019262,
            1019251496, 8363061,    1055948641, 94308317,   1061171013, 13581417,   10494854,   122597373,  30396258,
            1009969806, 38782891,   951196349,  70218624,   1017282254, 64972753,   978433768,  110039966,  1023546125,
            90115063,   1006720786, 149861308,  1030858573, 962740914,  1033959229, 921833124,  1036072845, 987880162,
            1060149096, 961652427,  1040239565, 1014069011, 11547539,   1001471731, 1043355662, 1038159684, 36687806,
            1040242460, 1045425232, 1061201781, 58682346,   3173189,    1045396625, 9453478,    80676887,   39845742,
            1017352784, 31445976,   949146229,  75470745,   1018369692, 49244171,   972187308,  108997571,  1019387624,
            959641200,  996276963,  910349912,  1020405556, 980583084,  1018269465, 947020427,  1019325313, 1000477417,
            1040260944, 983690943,  1016148942, 1020370726, 1060156296, 1018264307, 1011921948, 1038166883, 4211648,
            1050740520, 1006647403, 1053865889, 20960249,   8425310,    1001371834, 1067466720, 35609650,   36706196,
            978198595,  7324704,    948145709,  64987083,   1024326701, 955492910,  966989424,  899915275,  1070454806,
            972238454,  985832115,  932388427,  42841088,   987934399,  1003627253, 964862602,  90019818,   1002581768,
            1019325241, 996287178,  138245076,  1015131986, 1032925053, 1024565003, 186471358,  1024535453, 1044427714,
            1049698125, 235746215,  1030793193, 1053831176, 1071683472, 285021073,  1036001334, 1063236686, 16782293,
            973003773,  983416897,  949894180,  214118604,  1015983090, 1040028715, 1005456404, 214118604,  1058963431,
            22898709,   1061017603, 7349236,    28200925,   79511551,   41790450,   15734785,   72229842,   136123369,
            97351649,   10491892,   116258760,  192734163,  151865297,  7357398,    161335229,  248297405,  206377921,
            6323133,    205364147,  304909224,  260891569,  1071691689, 251490216,  972983287,  315404194,  1058073494,
            966759350,  1026446315, 941559764,  1042357123, 1006589879, 6168544,    993973198,  1026639729, 1047470008,
            59631573,   1046385608, 74469360,   13559737,   113094602,  24008643,   61886468,   54439867,   166557632,
            76422078,   33574917,   94271420,   218972086,  127786937,  6316029,    135150525,  272435116,  179150772,
            1064336377, 174982079,  962548652,  230515632,  1047567350, 215862208,  1012863915, 280831915,  1027651571,
            959466352,  1064226731, 932174724,  1005638640, 997197692,  40800171,   981439369,  983625708,  1035977609,
            90065836,   1030704014, 144736246,  1072660374, 140380077,  6226836,    106984459,  35601315,   189646766,
            54443930,   60846108,   72284080,   238912431,  102660000,  16804905,   107917245,  950016865,  150875047,
            1055944758, 144600010,  999280491,  198042542,  1026586691, 180234199,  1047495543, 246258613,  998277200,
            955319081,  19870594,   921741107,  968919132,  988853057,  67037070,   967857987,  939561064,  1023435610,
            113154971,  1013973844, 198225911,  1056969587, 159271847,  1061139301, 141596695,  16761739,   205389748,
            32464758,   83919927,   49247140,   938533653,  77532040,   29388886,   80683965,   983599915,  121550747,
            1053844595, 112120791,  1028666178, 165569453,  1010849936, 142509040,  1073732441, 209588159,  972049580,
            952220385,  42959729,   911308513,  934298823,  981558022,  84880265,   955324157,  896547043,  1011943210,
            126799777,  998292250,  238083063,  1041279823, 168720313,  1041260342, 170965029,  1070616436, 928099017,
            9437011,    104895571,  25162649,   968967915,  50307953,   40924290,   51353534,   1010886414, 90129295,
            1055937711, 77544420,   1050706736, 129950637,  1000355036, 102684681,  16785235,   169771979,  950016263,
            950171289,  55556983,   901923472,  901774642,  975310538,  93279131,   941742775,  853534045,  1001499387,
            129953727,  981562079,  273745910,  1025590059, 916615806,  1021381384, 199283763,  1049680732, 954336939,
            1059102512, 125871216,  1072722829, 992057049,  22034266,   54555822,   19925951,   1028728583, 57658243,
            1059079402, 40869873,   1064351542, 92233646,   993006886,  58667044,   24135526,   125760472,  931129698,
            948121169,  56612758,   892538430,  870300060,  970112654,  86991815,   929209969,  810520023,  991054539,
            905132593,  965880485,  307312630,  1010947847, 939704939,  1001502425, 226554946,  1029792580, 974276261,
            1035026189, 146846862,  1046540162, 1006751455, 1066453827, 68187353,   1061190593, 1038177049, 22041465,
            1063269669, 0,          1065408341, 51370928,   988804464,  12552256,   16799634,   78603239,   914339259,
            948169225,  41932752,   883154433,  840923647,  963865170,  893649409,  916676139,  767506943,  980610714,
            925072939,  949150314,  341926902,  995258083,  956496496,  980574890,  254873680,  1008856877, 984773302,
            1010950890, 168870059,  1020358519, 1012002556, 1038180140, 81818885,   1027664835, 1033986885, 1061215086,
            1068508512, 1033921551, 1051776911, 7361459,    983553466,  1039129692, 1066421210, 27250679,   897549823,
            954062925,  214118604,  214118604,  811546111,  1011723318, 214118604,  214118604,  725542399,  1068335136,
            0,          1065354243, 12565510,   51204106,   1072692221, 2093044,    1070590977, 107816947,  4190187,
            8391641,    8393724,    164428766,  12595140,   15751088,   13639644,   219992008,  16808863,   14721936,
            15742917,   276603826,  10536834,   5302132,    9458609,    332167069,  1072760679, 1066476378, 5271454,
            945727484,  1060192077, 1053907776, 1086346,    999190513,  1047623475, 37763067,   1070642039, 1053702118,
            35664878,   30422018,   44048372,   33424346,   36713475,   9454577,    42997761,   86887376,   18889723,
            1075169,    11542530,   140350405,  4215784,    1066439637, 4206588,    192764859,  1071677403, 1050722250,
            15350,      245179313,  1059105743, 1032905663, 1063274481, 298642342,  1042338756, 1014040500, 1051743213,
            936342444,  1023473594, 99641342,   1040212969, 987706283,  1004608431, 68182028,   1028682724, 1039069099,
            111175668,  28337169,   100691943,  15642539,   84960263,   1070623765, 77617150,   65956780,   48259088,
            1047560218, 35669007,   115223468,  10512403,   1024495647, 7355420,    164489134,  1059091480, 1000383524,
            1062221863, 214803375,  1036027933, 974173224,  1044396081, 264070064,  1011915810, 149982212,  1025520700,
            925909851,  986754086,  99647517,   1006646343, 975172454,  961592362,  47215668,   986722385,  1023387505,
            173053943,  1076298,    144748510,  1070553980, 124815376,  1034971232, 100700158,  43978632,   73431081,
            1001416820, 56650782,   90095508,   23097407,   967861384,  17847355,   136213409,  1053846613, 935355547,
            1058029655, 182330285,  1018194026, 187741194,  1028664433, 228448186,  984638590,  124819505,  1001396363,
            916524810,  951084178,  63995992,   973080740,  961591072,  918578341,  7366783,    946861246,  1006657335,
            219203575,  1029722276, 178319316,  1050675021, 156280862,  982531272,  126926849,  20950885,   94407749,
            938485995,  76583982,   63919997,   35681388,   895490318,  28339291,   105840533,  1054891153, 220257297,
            1058030726, 147760045,  1005602998, 149991495,  1017127087, 189680581,  960509146,  80775293,   979369177,
            907139769,  917512445,  14704818,   941612289,  948009690,  874515744,  1026570471, 903854378,  989927164,
            255914998,  967841051,  210841546,  1030796063, 184599596,  913304910,  153154565,  1070616386, 115383394,
            858769793,  95468607,   36694885,   47215768,   251723800,  39879802,   74418057,   1056984269, 174114909,
            1059081396, 111092653,  997205249,  98603169,   1007687917, 148814801,  939524404,  24140006,   958391590,
            896707175,  886037863,  1025515818, 910143838,  935475860,  831502746,  957344109,  861896086,  973196994,
            290529270,  889173424,  242315200,  1010917104, 212919354,  822050291,  178333704,  1046540063, 136359039,
            283190303,  113303633,  7372622,    60847300,   199285875,  50370714,   39849854,   1061174536, 116431046,
            1061180642, 72327087,   990905675,  33575193,   999297322,  102706143,  922733967,  1025509740, 939510130,
            887322133,  855611857,  945799615,  879723962,  922943054,  788489727,  866089471,  820986367,  957515400,
            325143542,  786379263,  274837429,  991038145,  241238089,  314657831,  203511820,  1022464764, 157334684,
            224457864,  132187234,  1051792183, 74478831,   134258922,  60862649,   5281652,    1066413378, 43010380,
            1062231312, 29366193,   985654677,  1026552238, 990905704,  52402159,   905944552,  934255103,  920629695,
            877938177,  826234367,  843006463,  850352639,  909361672,  746524159,  750708223,  779027967,  940784205,
            359757814,  1066382339, 6257677,    971159187,  269557847,  6288378,    9418750,    998388441,  179357881,
            13633505,   8375283,    1023519520, 88110363,   17831869,   10472418,   1043406697, 1071652221, 18891679,
            15718350,   1059099572, 980403679,  18901891,   22013881,   0,          889155071,  17863528,   28309413,

            1068487676, 1063246849, 10484730,   0,          1071640571, 6291445,    3146753,    8393727,    9439217,
            12587997,   9445372,    9446378,    15736774,   17839030,   10499033,   12600268,   18895783,   17855384,
            11557825,   8417207,    14716809,   11578236,   4229037,    1072733091, 8438638,    5299041,    1068543898,
            1063306128, 2159444,    1072761671, 1058068359, 1052830590, 1069622074, 22027262,   1048640372, 57686012,
            28316662,   17835011,   59784179,   37762053,   20978691,   6304755,    54539267,   11549696,   12594174,
            5262306,    23083012,   21498,      6306793,    1072720854, 5261308,    1063282678, 3169244,    1060146123,
            1069571064, 1047559154, 1066433488, 1047571391, 1055944692, 1031835630, 1053858757, 1033947060, 1039173616,
            1014015978, 1040234426, 87053307,   1023450092, 109080570,  1026611118, 57690121,   1005629416, 71326734,
            92298225,   19941390,   122714095,  28333084,   78662659,   1071665169, 93348869,   1071666217, 36718604,
            1053842453, 49305622,   1047550005, 7359504,    1036019737, 11555875,   1023432768, 1063278611, 1016099869,
            1059083311, 1000365132, 1045455895, 995131425,  1036015674, 976248919,  1025536027, 129009658,  1011899462,
            145793018,  1005616159, 83914772,   987782225,  95454235,   984647714,  37773355,   963666012,  46165050,
            148935661,  1072715840, 170962922,  2119767,    106986503,  1041256532, 120623115,  1037060211, 59795488,
            1012942951, 70285354,   1003501710, 17849398,   984630394,  23094345,   969944233,  1056986186, 956317837,
            1055936613, 937434307,  1027624030, 162577403,  1020280960, 178312188,  999311473,  106992674,  986723483,
            119580714,  970997892,  54556745,   954213558,  61898840,   942685334,  5266542,    920656080,  8412292,
            190893032,  1034962066, 208724965,  1031814320, 134259727,  994061492,  148945939,  986717403,  80775221,
            956306647,  90215489,   943717637,  29386843,   919600377,  34631790,   900717871,  1055936640, 194046973,
            1056984218, 208732158,  1013987491, 131119154,  1008741574, 142657594,  975184070,  70290535,   963644656,
            78681206,   937429224,  12607643,   921693466,  15753394,   900722954,  1030763726, 878693700,  1029714157,
            225509347,  979373313,  242293728,  973077799,  162582551,  930080051,  176219164,  917491040,  100704332,
            881835364,  110145624,  862952858,  40924289,   223418367,  47217812,   239152128,  1058032821, 154197058,
            1059080399, 166784074,  1004544232, 86024325,   1000346890, 94414996,   955250970,  19948744,   944760132,
            23094495,   905957708,  1028663563, 890221949,  1027613993, 857713021,  966783309,  836732343,  960487794,
            258029533,  905950606,  274813915,  893362620,  188807200,  845118927,  202443813,  827284991,  120634468,
            253838337,  130074735,  268524546,  52461735,   178322514,  58755257,   189860954,  1061176553, 102805668,
            1062225156, 110148787,  997199148,  27289845,   993001805,  31484172,   936366445,  1026563399, 926925207,
            1026561381, 875534767,  954192280,  859799008,  947897789,  814703088,  881822185,  793722367,  870281727,
            291598296,  809451007,  308382677,  791617023,  216080425,  284259331,  229717038,  4173830,    140564603,
            201399394,  150004871,  5236732,    65047756,   118539458,  71340255,   9434092,    1064321310, 35678498,
            1065369912, 14681044,   990902639,  1025511811, 987753873,  15733695,   917482944,  942650851,  909089258,
            15738795,   845111807,  857692671,  830425599,  16793496,   773790207,  773783039,  752809471,  17849220,
            325167059,  1072663562, 10457100,   28314614,   242305074,  8378362,    2085887,    0,          160493714,
            12576739,   7336951,    3148798,    76585202,   13627332,   12580832,   5247991,    1067466066, 20975527,
            16781258,   1054705,    984605107,  26225547,   15735733,   1068507116, 900696575,  31476592,   15741857,
            1061169127, 815738367,  35680085,   16797582,   1054879715, 731828735,  11526142,   18900859,   69227499,
            1072652307, 1045502,    35655664,   37763072,   3127298,    6291445,    18876412,   10496016,   12576753,
            10488806,   2098176,    1071652890, 11528146,   9443288,    4198395,    1060117539, 17825717,   5252044,
            4200436,    1046484013, 24124313,   2110399,    1071651823, 1032850487, 28326781,   1072711603, 1064313834,
            1018168385, 33578850,   50343920,   1058024421, 98606050,   38829896,   22027264,   1051736032, 61895682,
            20960254,   4200455,    80765918,   27284512,   4189182,    6153,       55592950,   1072707643, 3144699,
            1067456522, 22032393,   1048584277, 8390637,    1056970765, 3154965,    1026559086, 10490847,   1046485007,
            1065361439, 1005581446, 7347154,    1035999250, 1053825064, 982506655,  3156934,    84965350,   1040191538,
            126935001,  1063865,    50353153,   1025509436, 83930118,   1071665069, 18889752,   1010827334, 41975857,
            57687014,   1070607403, 117485521,  3167324,    39856121,   1053827132, 80775154,   1041247365, 9443333,
            1035997261, 44065809,   1008731309, 2103304,    1018167391, 12600366,   977263829,  1070602249, 1000337520,
            1060121672, 945796349,  1062213643, 113294301,  1038096481, 154215377,  1051727886, 73437188,   1015021690,
            104915978,  1041242128, 34629673,   994044051,  56666179,   1030757395, 1067084,    970969259,  8417404,
            100699096,  1045440621, 148961219,  1037055157, 68184052,   1017120909, 104908783,  994049260,  33572877,
            990898350,  62952476,   951043363,  7353378,    963627214,  23095367,   909086042,  1062216756, 140574677,
            1059078257, 181495752,  1045436485, 94423048,   1025513625, 125901839,  1027606614, 49321018,   994046145,
            69260374,   1009776743, 6316140,    961530089,  13666461,   991946873,  1039151261, 930062608,  1031815396,
            133223370,  1000341709, 179388340,  979368235,  92317681,   964677884,  130090989,  925872497,  53509142,
            926916907,  80791591,   873425335,  17848378,   167856076,  32541792,   208776127,  1059076189, 115408909,
            1059082393, 145839124,  1030756477, 62962765,   1013979345, 81853545,   1004533918, 11566221,   972022024,
            17867966,   977262782,  1033911500, 930064703,  1027624212, 949991646,  986709260,  888108406,  964686185,
            164699068,  938458442,  209816484,  900700607,  117499886,  891256201,  153175019,  837763583,  71348257,
            195136452,  97581107,   4161542,    27294803,   135346193,  40938618,   10461176,   1059080325, 75556960,
            1059087553, 9412587,    1019222197, 15766702,   1004543240, 16750553,   982509797,  1029719292, 952096078,
            23046086,   945797396,  972027210,  899648916,  34583474,   909084995,  913286552,  847201754,  46120862,
            195127212,  855594470,  241293205,  57658251,   141632492,  222416827,  177307626,  13624302,   89186349,
            155282454,  113322046,  1038325,    36740205,   88150130,   49336468,   1036279,    1059085485, 19968207,
            1059092713, 8374258,    1009786092, 1025528107, 995107134,  12567532,   962583851,  957346184,  933217684,
            15713254,   914333034,  888115686,  869232106,  18857952,   867130792,  819932671,  806295039,  23051227,
            225555357,  1003539,    1010702,    30424027,   165766122,  12550139,   8360959,    10492912,   105975864,
            13600741,   9412594,    0,          45138055,   17793997,   12557282,   1044489,    1059089621, 28284851,
            19898320,   1073733649, 1000348963, 44018584,   28291004,   1070582810, 942656881,  59752317,   39827368,
            1066384418, 883916223,  75486051,   51365781,   1061137451, 826224127,  8369146,    63951745,   53515209,
            255983501,  5225463,    19916779,   30435304,   188850153,  5224433,    6283250,    11549701,   121716804,
            12563429,   1073730551, 1071651871, 54583457,   18855897,   4180981,    1062206518, 1059094781, 25148364,
            10471407,   1050664013, 990912858,  32489407,   14664681,   1039121508, 922730935,  39830451,   17809379,
            1026530427, 854547967,  19927012,   20955102,   77654966,   785317375,  4192243,    24099800,   50378721,
            1067397152, 1072687100, 40914896,   24149003,   8350726,    4186110,    19934182,   19507,      13600752,
            6280191,    4198393,    1051728986, 14648281,   6276096,    1073739781, 1031793791, 21990337,   6274049,
            1042445,    1011858597, 35627942,   5223427,    1072682005, 990874827,  51361675,   41969618,   1068483614,
            101795747,  67094384,   20988908,   1064285223, 68223962,   82829142,   5251075,    1059038255, 34651153,
            9416700,    1071645716, 66104249,   2128967,    6273017,    1067445284, 41975769,   1044397181, 4176884,
            1061147699, 20993015,   1015020722, 8369132,    1052752963, 4205586,    984596710,  15709151,   1043309651,
            1066404907, 954171675,  22001618,   66109376,   1056959553, 124886928,  29342662,   40931300,   1045417048,
            85020628,   36684729,   17849352,   1032825967, 44104728,   44025773,   1072706601, 1019186310, 3189852,
            29367260,   1055919176, 91293601,   1036016800, 10486764,   1041228902, 64016332,   996151523,  1072689145,
            1025490052, 36740086,   958382375,  1041405,    1008702627, 11559967,   918516074,  5232638,    89200557,
            1062220870, 149026684,  6279167,    58776541,   1041237101, 100768718,  6275072,    29400078,   1022350482,
            52509727,   5224450,    1074237,    1001366712, 4250737,    5221380,    1047538795, 979335390,  1028686019,
            53509060,   1023407257, 118581128,  979378453,  30430175,   998227142,  85009343,   932168039,  11546616,
            971999475,  51438582,   882861497,  1052684,    113341338,  17865772,   1065306121, 1070594076, 76622807,
            1060133986, 2051066,    1064296491, 38853652,   1028660375, 11486187,   1056950331, 2135121,    999283916,
            23017435,   1048555595, 1040206990, 969908480,  36649930,   1039112283, 1004538058, 939483445,  55524280,
            78699437,   970965254,  145868654,  76496805,   53520338,   936343874,  104953778,  97468305,   29390838,
            137481094,  64038902,   1068480490, 8407065,    93419473,   23123002,   1071621100, 1064312889, 48307227,
            1056998526, 3117036,    1049622615, 3196006,    1016084674, 13598697,   1032835189, 1032876209, 977266949,
            25128932,   1017096340, 987764988,  938449224,  37708767,   1000308914, 944750919,  898583948,  50288601,
            104937365,  900689298,  173156180,  63917011,   74513349,   161621875,  124898213,  1057741,    44089334,
            109167563,  76639222,   1071644637, 14712869,   56712227,   28380232,   1073733611, 1061177428, 4256891,
            1052815514, 5226486,    1034948738, 1024495828, 1004556524, 12559358,   1010817199, 970991918,  956297534,
            18843653,   985638108,  918537607,  906990992,  25127949,   959409417,  865033697,  858732003,  30363669,
            132224891,  1064243225, 1060062225, 13668272,   94457784,   4135937,    1070548994, 6315981,    57738230,
            15670251,   6244339,    1060840,    21018675,   28252116,   16727012,   0,          1058041968, 42934205,
            29308883,   1038358,    1022372012, 63907748,   46087105,   1073721388, 988800232,  89076619,   66010030,
            1071612993, 954178852,  114244465,  86982555,   1069505623, 919557472,  1066369018, 107954056,  31521683,
            159512417,  1072658419, 1067433961, 18923451,   115449771,  7301100,    1069527019, 7373795,    70339574,
            17783778,   1073716204, 1071662089, 26275905,   31413207,   7309291,    1063259181, 1054906508, 47140811,
            18839527,   1054856273, 1009796311, 63916991,   31419362,   1044357237, 966782242,  80692146,   43998172,
            1034905753, 922719596,  1071640539, 57626582,   50423670,   878657975,  1070584805, 70206416,   31530922,
            186799943,  1030124,    3160004,    13686750,   135394207,  9412592,    1072697301, 1069583377, 82939895,
            18844657,   1071640549, 1051739204, 30484559,   28276722,   2084849,    1033896055, 1051772072, 37708787,
            9417722,    1017100457, 998268161,  47140852,   15700994,   999256283,  945813851,  6313918,    21985289,
            70375256,   891261364,  1060821,    27222033,   44138393,   837757439,  1072695274, 32457753,   18951129,
            1056901157, 3138555,    18917282,   1066455066, 1071585293, 6274058,    9467838,    1041267803, 10428406,
            9411609,    3164122,    1015031964, 21960672,   11499559,   6132,       989843676,  34544585,   12539958,
            1043467,    962559261,  52372401,   22070178,   1033249,    89277242,   76492695,   12619716,   1072666678,
            56746887,   101660542,  4216805,    1070559308, 23166933,   126828388,  1072702468, 1068451938, 1063327780,
            1064272893, 1069544482, 37821311,   1029747826, 1069513718, 1064288318, 25222055,   995119297,  3108848,
            1057984603, 12623823,   961539344,  12542951,   1051680888, 2123766,    926909791,  24074205,   40973188,
            1067460635, 1047463949, 38753233,   25227187,   1059057727, 1066335229, 55528389,   10529760,   1049607267,
            11463662,   72304569,   1070622733, 1040155783, 31382494,   89079724,   1056974905, 1029655723, 54448078,
            1072692182, 1045424228, 59870043,   80660412,   1070587872, 1030728847, 40977296,   108968874,  1071629289,
            1017081018, 22084548,   138326936,  4172782,    59875175,   4240376,    1047497702, 13603825,   37834657,
            1060137003, 1062170596, 24084466,   15794140,   1043341405, 4149218,    33516531,   1068544022, 1026546832,
            20920288,   42948596,   1046503504, 1007654082, 40836060,   51332085,   1024464009, 989809908,  61801431,
            10514355,   1003472067, 82969399,   83816401,   3163082,    980383996,  56732536,   105830347,  7136,
            79826761,   31545273,   1047530430, 1045491,    50442128,   5308410,    1060102091, 5229571,    21058519,
            1053861947, 1071626198, 8367121,    1065415711, 1027625083, 11505632,   10455072,   1034983527, 1002437820,
            27224041,   12544047,   1004551342, 976201981,  41894896,   13583422,   975166710,  949965117,  57614328,
            27320208,   944734526,  106067731,  72285183,   16820147,   99777322,   73536352,   1053854615, 8418261,
            63050623,   39956398,   1060131760, 1064949,    26322899,   6376445,    1067458504, 1070599187, 1062288424,
            1046537291, 4188127,    1066392624, 1023463550, 1011908762, 13613045,   1061136461, 984638676,  977280233,
            23035914,   1054832746, 946862378,  943700280,  31411230,   1048529031, 908037504,  909071751,  38738995,
            48321389,   1048496161, 1038028821, 1063324527, 32575388,   1068417034, 1056899077, 1064355733, 17878985,
            15644660,   2028534,    1066435514, 3181559,    37662685,   21947366,   1069564893, 1064323107, 61778887,
            42915798,   0,          1050675278, 90089391,   67029957,   3129378,    1038077049, 121545623,  94289843,
            4161605,    1024429221, 154050430,  123647905,  4145256,    1009732816, 1047481337, 153005966,  2198343,
            71419721,   1064252401, 1040161766, 1071725433, 49379204,   7282664,    1054833637, 1067511722, 27338686,
            26150879,   1069506531, 1063296987, 5299193,    47118293,   12534753,   1059081227, 1056999475, 71231433,
            30353374,   1054867515, 1034958956, 96392126,   50270169,   1049604204, 1013968038, 121553841,  72284116,
            1042243740, 991927519,  1047514066, 94299086,   15863583,   969888025,  1061136343, 116313032,  5354333,
            94518053,   1016796,    1042292664, 1067538331, 65134444,   16737248,   1053816772, 1055980505, 35750836,
            33506274,   1065339856, 1044421655, 6367227,    52372452,   5219291,    1031815252, 1049675843, 70191076,
            18840549,   1019207826, 1020291211, 89057253,   34559981,   1005552849, 989859026,  1049643947, 50279412,
            30577399,   960475418,  1059068861, 64949244,   12724033,   928993634,  1069542351, 79619075,   1067564940,
            117616384,  7322592,    1050716042, 1048662999, 80889685,   19894255,   1056993188, 1029761058, 44162985,
            32465917,   1063270332, 1008761966, 7435262,    43987979,   1071645652, 988812474,  1042351187, 55511065,
            9424874,    967813382,  1004574889, 1058065283, 18848767,   1027524625, 965750015,  1062243235, 27224084,
            1056877569, 927973717,  1067470785, 34550825,   11442161,   889148843,  6110,       42926142,   41844705,
            1038012460, 7330811,    1062284125, 74344401,   1057932309, 12558358,   1064363906, 107892672,  5159935,
            17786930,   1065396135, 143539119,  26129384,   21965901,   1068524492, 180234141,  49195986,   1069632347,
            1071653871, 1024417760, 75409339,   1067516807, 2088977,    1050621917, 105816995,  1066448818, 3121204,
            3085274,    137274250,  1066430428, 4153430,    29290454,   170827633,  1066412038, 4136057,    57592786,
            1039095805, 1066393647, 4305711,    86943694,   1055866869, 1063229528, 90976,      117344201,  1072637933,
            1060065410, 1069618066, 147743683,  16716772,   8507187,    1065404355, 1022358447, 36634586,   1144683,
            1061189619, 1045413816, 58650575,   1067525027, 1056974883, 1068470210, 83811268,   1060162522, 1052760147,
            17784779,   108972984,  1051751441, 1045399684, 41889747,   134134699,  1043341384, 1038039220, 65994715,
            1041226703, 1034930303, 21117696,   90099682,   1053800405, 1023374518, 10608446,   115253225,  1067423706,
            23219979,   1072792444, 1021347709, 8352734,    8515407,    1062283194, 1040205715, 25121761,   1067551635,
            1050725368, 1060113321, 42939363,   1052846040, 1038117941, 6279102,    60757988,   1037090844, 1025511539,
            26186707,   79624165,   1020288097, 1012905138, 45044711,   98490342,   1004533926, 998200560,  63903740,
            1046504353, 986682603,  38979281,   81713168,   1053832116, 37933794,   21125916,   1024531275, 1063257031,
            15885107,   3273574,    1039192942, 2085848,    1067578244, 1058114481, 1053853584, 13608936,   1045529558,
            1039212540, 1068515250, 26180598,   1021382696, 1019262024, 10483667,   38751236,   997235834,  999311508,
            24095732,   50274322,   973089997,  978312416,  35610645,   61797408,   949991712,  957313324,  46076982,
            1055975283, 1029603370, 1013897241, 1029813017, 1060154259, 1060005907, 1042201609, 1039227720, 1064333234,
            16668669,   1071555577, 1047593846, 1069560784, 48121831,   27167721,   1057009572, 4192237,    81671121,
            57570265,   1066424274, 10468360,   118367162,  91118537,   0,          15696932,   156112802,  125716408,
            6268975,    19875904,   195954570,  161361830,  10440798,   23007323,   1026496505, 198056852,  1037190886,
            1069641542, 1053750255, 1011839970, 1040311073, 1068574577, 7263206,    1038044126, 1043432284, 1067507613,
            35567580,   1064249307, 1045503895, 1066439623, 65968082,   16711640,   1047575506, 1066422257, 97418183,
            43965396,   1048597517, 1066402842, 129916860,  72267728,   1048571977, 1065335876, 163464112,  101619659,
            1045400709, 1062171757, 1023387591, 132019142,  1045618356, 1057959063, 1048542155, 163468224,  1042444027,
            12711703,   1072648142, 1009781674, 1038221122, 5350223,    24061905,   1033886644, 1033998218, 1070680967,
            49216467,   1056942013, 1028726738, 1063319486, 76469204,   6256582,    1022405659, 1055958005, 103721941,
            29312975,   1013987428, 1047545900, 130974678,  53417943,   1006618797, 1039135843, 1021328278, 78571486,
            1007585301, 1029676187, 1042285478, 102676454,  1047421957, 1018120402, 1064291253, 127829997,  12469237,
            30573289,   12556229,   1011918706, 53354469,   15867693,   33513427,   1030776712, 94240724,   1162097,
            55520225,   1050684318, 136174532,  1060198326, 77525999,   1070590900, 179157939,  1044445178, 98484220,
            16756681,   223189922,  1028689983, 1022414692, 35615709,   1002386394, 1011887235, 1039174529, 54474737,
            1038025686, 996133065,  1056983965, 72284166,   971729,     978281742,  1976,       90094618,   37660621,
            48433850,   17810387,   1017200442, 75397065,   26385163,   34570222,   1031862109, 113134532,  5385052,
            49232904,   1046522751, 151920576,  1057078189, 63895587,   1061184417, 190705595,  1033980927, 1026647858,
            2104258,    996137887,  1009833041, 1039210331, 16764899,   1029676966, 985687204,  1050724227, 29328388,
            1063217070, 961540342,  1062238123, 40844326,   23014326,   937394505,  1058770,    52359239,   56554429,
            1014926389, 12572666,   1025628929, 90093509,   1044280350, 20939810,   1035044656, 123633612,  941064,
            28259402,   1043410783, 158222291,  32395250,   1034025728, 1052826509, 990937955,  64895964,   1039245109,
            1061192635, 1021329271, 99494853,   1045513065, 1070608361, 1052768138, 137240494,  1051781022, 4183063,
            8369054,    176033686,  1057000402, 8354886,    37710769,   215875454,  1061170183, 11478133,   67053509,
            1012869117, 1064291388, 1036154569, 95347672,   1040122868, 1065316465, 1039275780, 123640812,  1067377642,
            1041404621, 1041347391, 987835175,  21939169,   1041378062, 1044467578, 1014029126, 50243543,   1040301903,
            1046540213, 1040223078, 81693644,   1040275345, 1048611824, 1065367430, 113143745,  1038151634, 1047536683,
            18868134,   146690998,  1034977300, 1047511143, 42963909,   180238250,  1030755414, 1044338851, 66012133,
            1010810822, 1026533529, 1046681232, 88009733,   1035965385, 1048783514, 1043506903, 985781994,  1060071372,
            1042461416, 1040332575, 1007778582, 11484111,   1036140341, 1036109670, 1029774146, 36638674,   1027721091,
            1031886766, 1050722158, 62842836,   1019301842, 1025566710, 1070620570, 90095573,   1008784417, 1018196031,
            16778182,   117348310,  998268017,  1009778824, 34579442,   145649623,  986703041,  1002409170, 50282527,
            1010849678, 1010709555, 988716062,  985824941,  1031806878, 1051595805, 1027503117, 1002575589, 1053812654,
            18740231,   1066292221, 1019326237, 1029053,    60677104,   32387053,   1035027286, 23034828,   103661530,
            73273309,   1049680782, 45040602,   147694532,  115207116,  1062236103, 65998824,   192777133,  157141948,
            0,          88005622,   238907286,  201173931,  10458170,   108961795,  1004462072, 245205914,  986917488,
            1014035286, 1043248109, 983518172,  998422196,  1030795122, 7244771,    1020206040, 1008877305, 1047554959,
            46031833,   1056893908, 1019333437, 1065363370, 84818895,   19839951,   1027691394, 9429958,    124654532,
            56528843,   1033952200, 26190816,   165538745,  94265287,   1038114831, 41902075,   206423982,  132002754,
            1042277462, 56563734,   999262140,  170788797,  987644954,  71227440,   1033851838, 210623416,  1037965321,
            1021415198, 1069489088, 979367835,  13496313,   1032929094, 30336961,   1012907938, 63815656,   1044442991,
            65975235,   1046447018, 114136024,  1057005463, 101614533,  6244274,    164456391,  1068519359, 138301382,
            39784377,   215825335,  7340006,    173939655,  73324481,   266145703,  16755726,   993013633,  106863560,
            979306452,  25123894,   1026551694, 140403664,  1026478031, 32443486,   1057992604, 174992343,  1073649609,
            1030892261, 15691690,   975218521,  46030788,   1036111642, 47132599,   1005608813, 93202368,   1042379599,
            78573509,   1036000128, 140373947,  1048646532, 110014418,  1067440020, 186496950,  1053865912, 141456351,
            23039912,   233668530,  1059085292, 988862277,  52382651,   969917326,  1063255073, 1017154399, 80675791,
            1013940116, 1064280150, 1045446520, 110018530,  1057963931, 1065304204, 1046418,    138311670,  28244897,
            1041417900, 28289964,   974214935,  71219112,   1041391342, 54484933,   1000407863, 114193327,  1041363759,
            80679903,   1026601814, 157167542,  1040288624, 105826297,  1052795766, 201190333,  1039213489, 986809096,
            5246870,    960528200,  1037088755, 1010903854, 30392245,   1001403226, 1032866869, 1034998612, 54488021,
            1043325804, 1029693560, 1058044794, 77536245,   9410430,    1023374523, 7349152,    99533845,   49235856,
            1051943539, 30395333,   975308500,  88012707,   1045622465, 50295788,   997304064,  127839157,  1039300366,
            69146642,   1018252076, 166616008,  1031930716, 985803468,  1040247640, 951140098,  1023511467, 1005700862,
            1061195652, 988866335,  1014043642, 1024549680, 7353264,    1026591549, 1003526217, 1042350946, 26203100,
            1063269210, 991961241,  1060151188, 42954761,   26204024,   981444841,  3160006,    57610294,   60784535,
            990790718,  17814521,   977450641,  95364022,   1030628392, 30369837,   994200265,  128894932,  1071514642,
            986896015,  1010950913, 942799547,  39709692,   1000498893, 1026651961, 977376996,  81645541,   1014101771,
            1042354034, 1010905870, 125678543,  1026656073, 1055957930, 1043386167, 169711544,  1038161800, 1068514275,
            1075041,    215841698,  1048617927, 5228573,    31458187,   261972875,  1055928327, 14638168,   61840310,
            985592829,  1063238728, 980641358,  90125282,   1023331315, 986938962,  992145042,  935508596,  1062117352,
            995295900,  1003649751, 965888681,  26114014,   1003653862, 1014104859, 995220190,  64901076,   1010961201,
            1023512416, 1023503124, 104736713,  1016172413, 1030821797, 1050736458, 144572351,  1019285449, 1036034027,
            2130817,    186505140,  1020300310, 1040195634, 24121272,   227390377,  1020267620, 1043310714, 47160304,
            981442492,  991815741,  962485282,  928216621,  1017080765, 1043185702, 1012805649, 954399342,  1051670463,
            20813840,   1063124993, 979533487,  13566913,   73233402,   38655984,   1003619057, 48156610,   124603364,
            88976352,   1025607475, 83794884,   177021902,  139296720,  1044449142, 119433157,  229441464,  190665663,
            1060145082, 156121030,  282908578,  240986031,  0,          192807879,  983476215,  291306399,  214118604,
            977293178,  1031697388, 955196375,  214118604,  1008734088, 7226337,    1002367953, 10484730,   1042272149,
            55447510,   1049539532, 3146753,    1073713059, 103668684,  22969287,   9445372,    31412145,   152939457,
            70140866,   10499033,   62853054,   201160631,  116263869,  11557825,   94293964,   250431405,  163435449,
            4229037,    125734873,  974087089,  210607028,  1068543898, 156128230,  1020209074, 257778608,  1058068359,
            975241016,  1065282482, 947905419,  1048640372, 1003533138, 37661619,   991929233,  59784179,   1031825259,
            82735028,   1035952023, 54539267,   1059068805, 127807413,  6232990,    23083012,   14667679,   171832246,
            50255780,   5261308,    41911224,   217954231,  93231019,   1069571064, 68106194,   964698987,  136205234,
            1055944692, 93252588,   1008720759, 179179449,  1039173616, 119446533,  1050644355, 222153664,  1023450092,
            975286005,  18827151,   939566911,  1005629416, 998332187,  60751772,   980441937,  122714095,  1022426945,
            101627817,  1021315939, 93348869,   1046521703, 142503862,  1063239541, 49305622,   1069567885, 183378882,
            29323143,   11555875,   19920818,   955309861,  69148569,   1059083311, 40869848,   995134268,  107926444,
            1036015674, 59721727,   1033910100, 146703295,  1011899462, 78572582,   1073734508, 185480146,  987782225,
            976379571,  37719940,   932276979,  963666012,  995228389,  75447197,   970003216,  170962922,  1015125783,
            112125877,  1007728430, 120623115,  1033974601, 147755982,  1044406091, 70285354,   1051774843, 946970334,
            7341929,    23094345,   1068526509, 983645954,  44018568,   1055936613, 10487775,   1018224421, 78598054,
            1020280960, 24091667,   1053851465, 112128965,  986723483,  36649031,   13639533,   146709476,  954213558,
            979570288,  47169425,   926035623,  920656080,  993173166,  78602166,   960613072,  208724965,  1006776044,
            110034907,  994141945,  148945939,  1020378922, 939678360,  1027669794, 90215489,   1032933225, 971108039,
            1059101516, 34631790,   1043390376, 1002538742, 16790390,   1056984218, 1052797927, 1033968421, 47173537,
            1008741574, 1060107304, 1063300949, 75458508,   963644656,  1066369129, 16794502,   103743479,  921693466,
            982761005,  44029879,   920842842,  878693700,  991117943,  68118505,   951222927,  242293728,  1000523457,
            932387409,  980554436,  176219164,  1007831820, 959619724,  1009885945, 110145624,  1014091607, 987901639,
            1037119279, 47217812,   1018253219, 1014085378, 1063305061, 1059080399, 1020317679, 1038171966, 13650844,
            1000346890, 1020283965, 1060161403, 36689876,   944760132,  1020251275, 5262265,    56581132,   890221949,
            966655048,  24104952,   915650061,  836732343,  1018025009, 925095434,  941832782,  274813915,  1069394971,
            949179984,  966966926,  202443813,  47023109,   972214935,  992101072,  130074735,  99442671,   994202335,
            1015138066, 58755257,   150812633,  1013042983, 1035028308, 1062225156, 203232195,  1028736881, 1052821400,
            993001805,  256699309,  1041285052, 1067467741, 926925207,  309117847,  1051735048, 8372259,    859799008,
            959365117,  214118604,  214118604,  793722367,  1007587313, 214118604,  214118604,  308382677,  1055808486,
            1068487676, 1063246849, 229717038,  31336412,   1071640571, 6291445,    150004871,  79558609,   9439217,
            12587997,   71340255,   127779782,  15736774,   17839030,   1065369912, 177050556,  18895783,   17855384,
            987753873,  225271730,  14716809,   11578236,   909089258,  274542503,  8438638,    5299041,    830425599,
            952075185,  2159444,    1072761671, 752809471,  997148593,  1069622074, 22027262,   10457100,   1043269554,
            28316662,   17835011,   2085887,    14601138,   20978691,   6304755,    7336951,    59673523,   12594174,
            5262306,    12580832,   104746932,  6306793,    1072720854, 16781258,   149820341,  3169244,    1060146123,
            15735733,   194892727,  1066433488, 1047571391, 15741857,   239966136,  1053858757, 1033947060, 16797582,
            942688101,  1040234426, 87053307,   18900859,   986709873,  1026611118, 57690121,   35655664,   1029683069,
            92298225,   19941390,   18876412,   1071606665, 78662659,   1071665169, 2098176,    39789462,   36718604,
            1053842453, 4198395,    80665506,   7359504,    1036019737, 4200436,    122590127,  1063278611, 1016099869,
            1071651823, 163465148,  1045455895, 995131425,  1064313834, 204341193,  1025536027, 129009658,  1058024421,
            935397145,  1005616159, 83914772,   1051736032, 975222577,  984647714,  37773355,   80765918,   1015046984,
            148935661,  1072715840, 55592950,   1053822816, 106986503,  1041256532, 22032393,   18856824,   59795488,
            1012942951, 3154965,    56584080,   17849398,   984630394,  1065361439, 93261737,   1056986186, 956317837,
            1053825064, 129940418,  1027624030, 162577403,  1040191538, 166619098,  999311473,  106992674,  1025509436,
            929155789,  970997892,  54556745,   1010827334, 964783856,  942685334,  5266542,    117485521,  1001459475,
            190893032,  1034962066, 80775154,   1036037943, 134259727,  994061492,  44065809,   1070616411, 80775221,
            956306647,  12600366,   30404479,   29386843,   919600377,  1060121672, 62885795,   1055936640, 194046973,
            1038096481, 94318536,   1013987491, 131119154,  1015021690, 125750253,  975184070,  70290535,   994044051,
            922914432,  937429224,  12607643,   970969259,  955393711,  900722954,  1030763726, 148961219,  986823390,
            225509347,  979373313,  104908783,  1018254094, 162582551,  930080051,  62952476,   1048635197, 100704332,
            881835364,  23095367,   3177326,    40924289,   223418367,  1059078257, 30411678,   1058032821, 154197058,
            1025513625, 56598480,   1004544232, 86024325,   994046145,  80686082,   955250970,  19948744,   961530089,
            917721651,  905957708,  1028663563, 930062608,  946003566,  857713021,  966783309,  179388340,  974284457,
            258029533,  905950606,  130090989,  1000469220, 188807200,  845118927,  80791591,   1026652960, 120634468,
            253838337,  32541792,   1049690973, 52461735,   178322514,  1059082393, 1070630810, 1061176553, 102805668,
            1013979345, 14684121,   997199148,  27289845,   972022024,  32477207,   936366445,  1026563399, 930064703,
            912528897,  875534767,  954192280,  888108406,  936613421,  814703088,  881822185,  209816484,  960697972,
            291598296,  809451007,  153175019,  983732923,  216080425,  284259331,  97581107,   1003622147, 140564603,
            201399394,  40938618,   1021414220, 65047756,   118539458,  1059087553, 1036059542, 1064321310, 35678498,
            1004543240, 1046510562, 990902639,  1025511811, 952096078,  1056960558, 917482944,  942650851,  899648916,
        }
    },

};

#ifdef __cplusplus
#if __cplusplus
}
#endif
#endif /* End of #ifdef __cplusplus */

#endif /* __OS08A10_CMOS_EX_H_ */
